{
  "contractName": "DaoStorage",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_resolver",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposal",
      "outputs": [
        {
          "name": "_doc",
          "type": "bytes32"
        },
        {
          "name": "_proposer",
          "type": "address"
        },
        {
          "name": "_endorser",
          "type": "address"
        },
        {
          "name": "_state",
          "type": "bytes32"
        },
        {
          "name": "_timeCreated",
          "type": "uint256"
        },
        {
          "name": "_nVersions",
          "type": "uint256"
        },
        {
          "name": "_latestVersionDoc",
          "type": "bytes32"
        },
        {
          "name": "_finalVersion",
          "type": "bytes32"
        },
        {
          "name": "_pausedOrStopped",
          "type": "bool"
        },
        {
          "name": "_isDigixProposal",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalProposer",
      "outputs": [
        {
          "name": "_proposer",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readTotalPrlActions",
      "outputs": [
        {
          "name": "_length",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "readPrlAction",
      "outputs": [
        {
          "name": "_actionId",
          "type": "uint256"
        },
        {
          "name": "_time",
          "type": "uint256"
        },
        {
          "name": "_doc",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalDraftVotingResult",
      "outputs": [
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "readProposalVotingResult",
      "outputs": [
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalDraftVotingTime",
      "outputs": [
        {
          "name": "_start",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "readProposalVotingTime",
      "outputs": [
        {
          "name": "_start",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        }
      ],
      "name": "readDraftVotingCount",
      "outputs": [
        {
          "name": "_for",
          "type": "uint256"
        },
        {
          "name": "_against",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        }
      ],
      "name": "readVotingCount",
      "outputs": [
        {
          "name": "_for",
          "type": "uint256"
        },
        {
          "name": "_against",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        },
        {
          "name": "_vote",
          "type": "bool"
        }
      ],
      "name": "readVotingRoundVotes",
      "outputs": [
        {
          "name": "_voters",
          "type": "address[]"
        },
        {
          "name": "_length",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readDraftVote",
      "outputs": [
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readComittedVote",
      "outputs": [
        {
          "name": "_commitHash",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readVote",
      "outputs": [
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getFirstProposal",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getLastProposal",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getNextProposal",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getPreviousProposal",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        }
      ],
      "name": "getFirstProposalInState",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        }
      ],
      "name": "getLastProposalInState",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        },
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getNextProposalInState",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_stateId",
          "type": "bytes32"
        },
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getPreviousProposalInState",
      "outputs": [
        {
          "name": "_id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "name": "readProposalVersion",
      "outputs": [
        {
          "name": "_doc",
          "type": "bytes32"
        },
        {
          "name": "_created",
          "type": "uint256"
        },
        {
          "name": "_milestoneFundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalFunding",
      "outputs": [
        {
          "name": "_fundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "readProposalMilestone",
      "outputs": [
        {
          "name": "_funding",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getFirstProposalVersion",
      "outputs": [
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "getLastProposalVersion",
      "outputs": [
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "name": "getNextProposalVersion",
      "outputs": [
        {
          "name": "_nextVersion",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_version",
          "type": "bytes32"
        }
      ],
      "name": "getPreviousProposalVersion",
      "outputs": [
        {
          "name": "_previousVersion",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "isDraftClaimed",
      "outputs": [
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "isClaimed",
      "outputs": [
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalCollateralStatus",
      "outputs": [
        {
          "name": "_status",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalCollateralAmount",
      "outputs": [
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "readProposalDocs",
      "outputs": [
        {
          "name": "_moreDocs",
          "type": "bytes32[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_milestoneId",
          "type": "uint256"
        }
      ],
      "name": "readIfMilestoneFunded",
      "outputs": [
        {
          "name": "_funded",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_doc",
          "type": "bytes32"
        },
        {
          "name": "_proposer",
          "type": "address"
        },
        {
          "name": "_milestoneFundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        },
        {
          "name": "_isFounder",
          "type": "bool"
        }
      ],
      "name": "addProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_newDoc",
          "type": "bytes32"
        },
        {
          "name": "_newMilestoneFundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        }
      ],
      "name": "editProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_newMilestoneFundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        }
      ],
      "name": "changeFundings",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_newDoc",
          "type": "bytes32"
        }
      ],
      "name": "addProposalDoc",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "finalizeProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_endorser",
          "type": "address"
        }
      ],
      "name": "updateProposalEndorse",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "name": "setProposalDraftPass",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_result",
          "type": "bool"
        }
      ],
      "name": "setProposalPass",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "setProposalDraftVotingTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "setProposalVotingTime",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "name": "setDraftVotingClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_index",
          "type": "uint256"
        },
        {
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "name": "setVotingClaim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_status",
          "type": "uint256"
        }
      ],
      "name": "setProposalCollateralStatus",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "setProposalCollateralAmount",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_action",
          "type": "uint256"
        },
        {
          "name": "_doc",
          "type": "bytes32"
        },
        {
          "name": "_time",
          "type": "uint256"
        }
      ],
      "name": "updateProposalPRL",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "name": "addDraftVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "commitVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        },
        {
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "revealVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "closeProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "archiveProposal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_milestoneId",
          "type": "uint256"
        }
      ],
      "name": "setMilestoneFunded",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b50604051602080620060dd83398101806040528101908080519060200190929190505050620011756025548262001188640100000000026401000000009004565b15156200118157600080fd5b5062001419565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620011f057600080fd5b505af115801562001205573d6000803e3d6000fd5b505050506040513d60208110156200121c57600080fd5b810190808051906020019092919050505090506000151581151514156200140d5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620013ba57600080fd5b505af1158015620013cf573d6000803e3d6000fd5b505050506040513d6020811015620013e657600080fd5b810190808051906020019092919050505015156200140357600080fd5b6001915062001412565b600091505b5092915050565b614cb480620014296000396000f3006080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303020ea9146102cf57806304f3bcec14610380578063078f872c146103d75780630bcaa451146104085780630c012e591461045b5780630ec8f125146104a85780631478fff1146104f15780631d2103d11461054c5780631d47c3d3146105c65780631ea5d62f14610613578063237286e91461065a57806327618ad9146106a757806327a9bb0e146106e45780632fd010da1461071f578063344e436e146107865780633943380c146107cb578063395ddde9146107fe5780633a85b822146108475780633be88369146108965780633e020d2f146108db5780633f83acff1461092257806341a715891461099357806347d0da14146109e657806347d621a314610a1757806349a428d014610a725780634c5b318a14610ab757806356674c9f14610afc57806358cec13914610b57578063598f0eaf14610bc05780635b712eb614610c3757806370a6f59114610ca85780637246d5a714610cf55780637aafacae14610d8257806382e445c614610de757806385f5276f14610e245780638a2d659714610e7757806395ecdf9e14610eb2578063a1d444a414610ee3578063a1e55acf14610f62578063a6129f8c14610fd0578063a692e0ef14611041578063ac443d9f1461109c578063baf42660146110ed578063bb3b5f6d1461113c578063c004b7de146111a0578063c3093bb1146111f3578063c362c79014611246578063cfd5917214611281578063d8d50179146112b4578063db4ecbc1146113b8578063de233e421461140f578063e14b2c2614611495578063e3f3f7a214611505578063e415667514611540578063e7853aac1461158d578063e81362fe146115da578063eb82718a14611695578063eef7b8f5146116da578063f0ab3dd914611719578063ffec1b211461174c575b600080fd5b3480156102db57600080fd5b5061030c600480360381019080803560001916906020019092919080356000191690602001909291905050506117ad565b60405180856000191660001916815260200184815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036957808201518184015260208101905061034e565b505050509050019550505050505060405180910390f35b34801561038c57600080fd5b5061039561191a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610406600480360381019080803560001916906020019092919050505061193f565b005b34801561041457600080fd5b50610441600480360381019080803560001916906020019092919080359060200190929190505050611961565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b5061048a60048036038101908080356000191690602001909291905050506119be565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104d760048036038101908080356000191690602001909291905050506119f2565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b5061052e60048036038101908080356000191690602001909291908035600019169060200190929190505050611a3d565b60405180826000191660001916815260200191505060405180910390f35b34801561055857600080fd5b506105a5600480360381019080803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7e565b60405180831515151581526020018281526020019250505060405180910390f35b3480156105d257600080fd5b506105f56004803603810190808035600019169060200190929190505050611bb3565b60405180826000191660001916815260200191505060405180910390f35b34801561061f57600080fd5b50610658600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050611bf2565b005b34801561066657600080fd5b506106896004803603810190808035600019169060200190929190505050611e4a565b60405180826000191660001916815260200191505060405180910390f35b3480156106b357600080fd5b506106e26004803603810190808035600019169060200190929190803515159060200190929190505050611e5e565b005b3480156106f057600080fd5b5061071d600480360381019080803560001916906020019092919080359060200190929190505050611eb1565b005b34801561072b57600080fd5b506107846004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080359060200190929190505050611f16565b005b34801561079257600080fd5b506107c960048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050612120565b005b3480156107d757600080fd5b506107e06121a9565b60405180826000191660001916815260200191505060405180910390f35b34801561080a57600080fd5b5061082d60048036038101908080356000191690602001909291905050506121af565b604051808215151515815260200191505060405180910390f35b34801561085357600080fd5b506108806004803603810190808035600019169060200190929190803590602001909291905050506121e7565b6040518082815260200191505060405180910390f35b3480156108a257600080fd5b506108c560048036038101908080356000191690602001909291905050506122ce565b6040518082815260200191505060405180910390f35b3480156108e757600080fd5b50610920600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050612309565b005b34801561092e57600080fd5b50610951600480360381019080803560001916906020019092919050505061236e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099f57600080fd5b506109cc60048036038101908080356000191690602001909291908035906020019092919050505061244a565b604051808215151515815260200191505060405180910390f35b3480156109f257600080fd5b50610a1560048036038101908080356000191690602001909291905050506124a7565b005b348015610a2357600080fd5b50610a54600480360381019080803560001916906020019092919080356000191690602001909291905050506124ef565b60405180826000191660001916815260200191505060405180910390f35b348015610a7e57600080fd5b50610aa16004803603810190808035600019169060200190929190505050612525565b6040518082815260200191505060405180910390f35b348015610ac357600080fd5b50610ae66004803603810190808035600019169060200190929190505050612563565b6040518082815260200191505060405180910390f35b348015610b0857600080fd5b50610b396004803603810190808035600019169060200190929190803560001916906020019092919050505061258e565b60405180826000191660001916815260200191505060405180910390f35b348015610b6357600080fd5b50610bbe60048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c4565b005b348015610bcc57600080fd5b50610c19600480360381019080803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612658565b60405180826000191660001916815260200191505060405180910390f35b348015610c4357600080fd5b50610c6660048036038101908080356000191690602001909291905050506126e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cb457600080fd5b50610cd7600480360381019080803560001916906020019092919050505061272e565b60405180826000191660001916815260200191505060405180910390f35b348015610d0157600080fd5b50610d246004803603810190808035600019169060200190929190505050612742565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015610d6d578082015181840152602081019050610d52565b50505050905001935050505060405180910390f35b348015610d8e57600080fd5b50610dbb600480360381019080803560001916906020019092919080359060200190929190505050612862565b604051808481526020018381526020018260001916600019168152602001935050505060405180910390f35b348015610df357600080fd5b50610e226004803603810190808035600019169060200190929190803515159060200190929190505050612977565b005b348015610e3057600080fd5b50610e5d600480360381019080803560001916906020019092919080359060200190929190505050612bb2565b604051808215151515815260200191505060405180910390f35b348015610e8357600080fd5b50610eb0600480360381019080803560001916906020019092919080359060200190929190505050612bfc565b005b348015610ebe57600080fd5b50610ee16004803603810190808035600019169060200190929190505050612c39565b005b348015610eef57600080fd5b50610f606004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190929190803515159060200190929190505050612e47565b005b348015610f6e57600080fd5b50610fb3600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050613222565b604051808381526020018281526020019250505060405180910390f35b348015610fdc57600080fd5b5061103f6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291908035906020019092919080359060200190929190505050613349565b005b34801561104d57600080fd5b5061107e60048036038101908080356000191690602001909291908035600019169060200190929190505050613461565b60405180826000191660001916815260200191505060405180910390f35b3480156110a857600080fd5b506110eb6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134a2565b005b3480156110f957600080fd5b506111266004803603810190808035600019169060200190929190803590602001909291905050506136d8565b6040518082815260200191505060405180910390f35b34801561114857600080fd5b506111836004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390505050613728565b604051808381526020018281526020019250505060405180910390f35b3480156111ac57600080fd5b506111f160048036038101908080356000191690602001909291908035906020019092919080356000191690602001909291908035906020019092919050505061383d565b005b3480156111ff57600080fd5b50611244600480360381019080803560001916906020019092919080359060200190820180359060200191909192939192939080359060200190929190505050613a00565b005b34801561125257600080fd5b5061127f600480360381019080803560001916906020019092919080359060200190929190505050613ae2565b005b34801561128d57600080fd5b50611296613b56565b60405180826000191660001916815260200191505060405180910390f35b3480156112c057600080fd5b506112e36004803603810190808035600019169060200190929190505050613b67565b604051808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188600019166000191681526020018781526020018681526020018560001916600019168152602001846000191660001916815260200183151515158152602001821515151581526020019a505050505050505050505060405180910390f35b3480156113c457600080fd5b506113cd613c64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141b57600080fd5b5061143e6004803603810190808035600019169060200190929190505050613c8a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611481578082015181840152602081019050611466565b505050509050019250505060405180910390f35b3480156114a157600080fd5b506114e46004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d5d565b60405180831515151581526020018281526020019250505060405180910390f35b34801561151157600080fd5b5061153e600480360381019080803560001916906020019092919080359060200190929190505050613e80565b005b34801561154c57600080fd5b5061156f6004803603810190808035600019169060200190929190505050613ec0565b60405180826000191660001916815260200191505060405180910390f35b34801561159957600080fd5b506115bc6004803603810190808035600019169060200190929190505050613ef4565b60405180826000191660001916815260200191505060405180910390f35b3480156115e657600080fd5b50611637600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001919091929391929390803515159060200190929190505050613f33565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611680578082015181840152602081019050611665565b50505050905001935050505060405180910390f35b3480156116a157600080fd5b506116c460048036038101908080356000191690602001909291905050506140c2565b6040518082815260200191505060405180910390f35b3480156116e657600080fd5b50611717600480360381019080803560001916906020019092919080356000191690602001909291905050506140ea565b005b34801561172557600080fd5b5061172e6141ab565b60405180826000191660001916815260200191505060405180910390f35b34801561175857600080fd5b506117ab60048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001909291905050506141bc565b005b600080606060006076600087600019166000191681526020019081526020016000206009016000866000191660001916815260200190815260200160002073__DaoStructs____________________________6310d31f6490916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b15801561185757600080fd5b505af415801561186b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250608081101561189557600080fd5b81019080805190602001909291908051906020019092919080516401000000008111156118c157600080fd5b828101905060208101848111156118d757600080fd5b81518560208202830111640100000000821117156118f457600080fd5b505092919060200180519060200190929190505050935093509350935092959194509250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61194a6014546142b5565b151561195557600080fd5b61195e816143bf565b50565b600061196b6145b7565b151561197657600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160009054906101000a900460ff16905092915050565b60008060766000846000191660001916815260200190815260200160002090506119ea816003016146d1565b915050919050565b60006119fc6145b7565b1515611a0757600080fd5b607660008360001916600019168152602001908152602001600020600a0160050160009054906101000a900460ff169050919050565b6000611a476145b7565b1515611a5257600080fd5b611a7660776000856000191660001916815260200190815260200160002083614782565b905092915050565b600080611a896145b7565b1515611a9457600080fd5b607660008660001916600019168152602001908152602001600020601001600085815260200190815260200160002073__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015611b6257600080fd5b505af4158015611b76573d6000803e3d6000fd5b505050506040513d6040811015611b8c57600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b6000611bbd6145b7565b1515611bc857600080fd5b611beb6077600084600019166000191681526020019081526020016000206146d1565b9050919050565b611bfd6018546142b5565b1515611c0857600080fd5b801515611c1d57611c18836143bf565b611dfb565b6000821415611dfa57607760006007546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015611cbf57600080fd5b505af4158015611cd3573d6000803e3d6000fd5b505050506040513d6020811015611ce957600080fd5b810190808051906020019092919050505050607760006008546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015611d9457600080fd5b505af4158015611da8573d6000803e3d6000fd5b505050506040513d6020811015611dbe57600080fd5b81019080805190602001909291905050505060085460766000856000191660001916815260200190815260200160002060010181600019169055505b5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060050160006101000a81548160ff021916908315150217905550505050565b6000611e57607083614844565b9050919050565b611e696018546142b5565b1515611e7457600080fd5b80607660008460001916600019168152602001908152602001600020600a0160050160016101000a81548160ff0219169083151502179055505050565b611ebc601e546142b5565b1515611ec757600080fd5b6001607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160026101000a81548160ff0219169083151502179055505050565b6000611f236017546142b5565b1515611f2e57600080fd5b60766000866000191660001916815260200190815260200160002090508215612037578181600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561203257600081600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612119565b8181600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561211857600081600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5050505050565b61216260606040519081016040528060145460001916600019168152602001601854600019166000191681526020016003546000191660001916815250614906565b151561216d57600080fd5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060000181905550505050565b60015481565b6000607660008360001916600019168152602001908152602001600020600a0160050160019054906101000a900460ff169050919050565b60006121f16145b7565b15156121fc57600080fd5b60766000846000191660001916815260200190815260200160002073__DaoStructs____________________________631728cc369091846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561228b57600080fd5b505af415801561229f573d6000803e3d6000fd5b505050506040513d60208110156122b557600080fd5b8101908080519060200190929190505050905092915050565b60006122d86145b7565b15156122e357600080fd5b607660008360001916600019168152602001908152602001600020601101549050919050565b6123146018546142b5565b151561231f57600080fd5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561240857600080fd5b505af115801561241c573d6000803e3d6000fd5b505050506040513d602081101561243257600080fd5b81019080805190602001909291905050509050919050565b60006124546145b7565b151561245f57600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160029054906101000a900460ff16905092915050565b6124b26014546142b5565b15156124bd57600080fd5b6124c6816119be565b607660008360001916600019168152602001908152602001600020601301816000191690555050565b600080607660008560001916600019168152602001908152602001600020905061251c8160030184614844565b91505092915050565b600061252f6145b7565b151561253a57600080fd5b607660008360001916600019168152602001908152602001600020600a01600001549050919050565b6000607660008360001916600019168152602001908152602001600020601401805490509050919050565b60008060766000856000191660001916815260200190815260200160002090506125bb8160030184614782565b91505092915050565b6125cf6017546142b5565b15156125da57600080fd5b82607660008660001916600019168152602001908152602001600020601001600083815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816000191690555050505050565b60006126626145b7565b151561266d57600080fd5b607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b600060766000836000191660001916815260200190815260200160002060150160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061273b607083614782565b9050919050565b606060008061274f6145b7565b151561275a57600080fd5b6076600085600019166000191681526020019081526020016000206013015490506003546000191681600019161415151561279457600080fd5b6076600085600019166000191681526020019081526020016000206009016000826000191660001916815260200190815260200160002060040180548060200260200160405190810160405280929190818152602001828054801561281857602002820191906000526020600020905b815481526020019060010190808311612804575b505050505092506076600085600019166000191681526020019081526020016000206009016000826000191660001916815260200190815260200160002060030154915050915091565b60008060006060607660008760001916600019168152602001908152602001600020601401805480602002602001604051908101604052809291908181526020016000905b8282101561290057838290600052602060002090600302016060604051908101604052908160008201548152602001600182015460001916600019168152602001600282015481525050815260200190600101906128a7565b50505050905080518510151561291557600080fd5b808581518110151561292357fe5b90602001906020020151604001519350808581518110151561294157fe5b90602001906020020151600001519250808581518110151561295f57fe5b90602001906020020151602001519150509250925092565b6129826018546142b5565b151561298d57600080fd5b80607660008460001916600019168152602001908152602001600020600a0160050160006101000a81548160ff0219169083151502179055508015612ba457607760006006546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612a6557600080fd5b505af4158015612a79573d6000803e3d6000fd5b505050506040513d6020811015612a8f57600080fd5b810190808051906020019092919050505050607760006007546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612b3a57600080fd5b505af4158015612b4e573d6000803e3d6000fd5b505050506040513d6020811015612b6457600080fd5b8101908080519060200190929190505050506007546076600084600019166000191681526020019081526020016000206001018160001916905550612bae565b612bad826143bf565b5b5050565b6000607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160019054906101000a900460ff16905092915050565b612c076014546142b5565b1515612c1257600080fd5b80607660008460001916600019168152602001908152602001600020601201819055505050565b6000612c466018546142b5565b1515612c5157600080fd5b60766000836000191660001916815260200190815260200160002060010154905060776000826000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612d0957600080fd5b505af4158015612d1d573d6000803e3d6000fd5b505050506040513d6020811015612d3357600080fd5b81019080805190602001909291905050505060776000600a546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612dde57600080fd5b505af4158015612df2573d6000803e3d6000fd5b505050506040513d6020811015612e0857600080fd5b810190808051906020019092919050505050600a5460766000846000191660001916815260200190815260200160002060010181600019169055505050565b612e526014546142b5565b1515612e5d57600080fd5b600354600019166076600088600019166000191681526020019081526020016000206000015460001916148015612e9e575060035460001916866000191614155b1515612ea957600080fd5b607073__DoublyLinkedList______________________63582f30b49091886040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612f2757600080fd5b505af4158015612f3b573d6000803e3d6000fd5b505050506040513d6020811015612f5157600080fd5b810190808051906020019092919050505050607760006005546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091886040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612ffc57600080fd5b505af4158015613010573d6000803e3d6000fd5b505050506040513d602081101561302657600080fd5b8101908080519060200190929190505050508560766000886000191660001916815260200190815260200160002060000181600019169055508460766000886000191660001916815260200190815260200160002060150160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554607660008860001916600019168152602001908152602001600020600101816000191690555042607660008860001916600019168152602001908152602001600020600201819055508060766000886000191660001916815260200190815260200160002060160160156101000a81548160ff02191690831515021790555060766000876000191660001916815260200190815260200160002073__DaoStructs____________________________63ea496bc99091888787876040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600019166000191681526020018060200183815260200182810382528585828181526020019250602002808284378201915050965050505050505060006040518083038186803b15801561320257600080fd5b505af4158015613216573d6000803e3d6000fd5b50505050505050505050565b60008061322d6145b7565b151561323857600080fd5b607660008760001916600019168152602001908152602001600020601001600086815260200190815260200160002073__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b1580156132f757600080fd5b505af415801561330b573d6000803e3d6000fd5b505050506040513d604081101561332157600080fd5b8101908080519060200190929190805190602001909291905050509150915094509492505050565b6133546017546142b5565b151561335f57600080fd5b607660008660001916600019168152602001908152602001600020601001600082815260200190815260200160002073__DaoStructs____________________________631a14c51b90918686866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018315151515815260200182815260200194505050505060006040518083038186803b15801561344257600080fd5b505af4158015613456573d6000803e3d6000fd5b505050505050505050565b600061346b6145b7565b151561347657600080fd5b61349a60776000856000191660001916815260200190815260200160002083614844565b905092915050565b60006134af6014546142b5565b15156134ba57600080fd5b6076600084600019166000191681526020019081526020016000209050818160160160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018160001916905550607760006005546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b1580156135c257600080fd5b505af41580156135d6573d6000803e3d6000fd5b505050506040513d60208110156135ec57600080fd5b810190808051906020019092919050505050607760006006546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561369757600080fd5b505af41580156136ab573d6000803e3d6000fd5b505050506040513d60208110156136c157600080fd5b810190808051906020019092919050505050505050565b60006136e26145b7565b15156136ed57600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060000154905092915050565b6000806137336145b7565b151561373e57600080fd5b607660008660001916600019168152602001908152602001600020600a0173__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b1580156137ec57600080fd5b505af4158015613800573d6000803e3d6000fd5b505050506040513d604081101561381657600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b613845614bf1565b6138506014546142b5565b151561385b57600080fd5b6009546000191660766000876000191660001916815260200190815260200160002060010154600019161415151561389257600080fd5b818160000181815250508281602001906000191690816000191681525050838160400181815250506076600086600019166000191681526020019081526020016000206014018190806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001019060001916905560408201518160020155505050600c5484141561397157600160766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f9565b600d548414156139b757600060766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f8565b600160766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f7856143bf565b5b5b5050505050565b6000613a0d6014546142b5565b1515613a1857600080fd5b60766000866000191660001916815260200190815260200160002060130154905060035460001916816000191614151515613a5257600080fd5b8383607660008860001916600019168152602001908152602001600020600901600084600019166000191681526020019081526020016000206004019190613a9b929190614c16565b508160766000876000191660001916815260200190815260200160002060090160008360001916600019168152602001908152602001600020600301819055505050505050565b613b2460606040519081016040528060185460001916600019168152602001601e54600019166000191681526020016014546000191660001916815250614906565b1515613b2f57600080fd5b80607660008460001916600019168152602001908152602001600020601101819055505050565b6000613b626070614a7d565b905090565b6000806000806000806000806000806000613b806145b7565b1515613b8b57600080fd5b607660008d60001916600019168152602001908152602001600020905080600001549a508060150160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1699508060160160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1698508060010154975080600201549650613c1781600301614b2e565b9550613c25816003016146d1565b9450806013015493508060160160149054906101000a900460ff1692508060160160159054906101000a900460ff169150509193959799509193959799565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600060766000846000191660001916815260200190815260200160002060130154905060035460001916816000191614151515613cc857600080fd5b60766000846000191660001916815260200190815260200160002060090160008260001916600019168152602001908152602001600020600501805480602002602001604051908101604052809291908181526020018280548015613d5057602002820191906000526020600020905b81546000191681526020019060010190808311613d38575b5050505050915050919050565b600080613d686145b7565b1515613d7357600080fd5b607660008560001916600019168152602001908152602001600020600a0173__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015613e3057600080fd5b505af4158015613e44573d6000803e3d6000fd5b505050506040513d6040811015613e5a57600080fd5b810190808051906020019092919080519060200190929190505050915091509250929050565b613e8b6014546142b5565b1515613e9657600080fd5b80607660008460001916600019168152602001908152602001600020600a01600001819055505050565b6000806076600084600019166000191681526020019081526020016000209050613eec81600301614a7d565b915050919050565b6000613efe6145b7565b1515613f0957600080fd5b613f2c607760008460001916600019168152602001908152602001600020614a7d565b9050919050565b60606000613f3f6145b7565b1515613f4a57600080fd5b607660008860001916600019168152602001908152602001600020601001600087815260200190815260200160002073__DaoStructs____________________________63f53380cf90918787876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200183151515158152602001828103825285858281815260200192506020028082843782019150509550505050505060006040518083038186803b15801561401657600080fd5b505af415801561402a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250604081101561405457600080fd5b81019080805164010000000081111561406c57600080fd5b8281019050602081018481111561408257600080fd5b815185602082028301116401000000008211171561409f57600080fd5b505092919060200180519060200190929190505050915091509550959350505050565b6000607660008360001916600019168152602001908152602001600020601201549050919050565b60006140f76014546142b5565b151561410257600080fd5b6076600084600019166000191681526020019081526020016000206013015490506003546000191681600019161415151561413c57600080fd5b60766000846000191660001916815260200190815260200160002060090160008260001916600019168152602001908152602001600020600501829080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550505050565b60006141b760706146d1565b905090565b6141c76014546142b5565b15156141d257600080fd5b60766000866000191660001916815260200190815260200160002073__DaoStructs____________________________63ea496bc99091868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600019166000191681526020018060200183815260200182810382528585828181526020019250602002808284378201915050965050505050505060006040518083038186803b15801561429657600080fd5b505af41580156142aa573d6000803e3d6000fd5b505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561434f57600080fd5b505af1158015614363573d6000803e3d6000fd5b505050506040513d602081101561437957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060766000836000191660001916815260200190815260200160002060010154905060776000826000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561447957600080fd5b505af415801561448d573d6000803e3d6000fd5b505050506040513d60208110156144a357600080fd5b810190808051906020019092919050505050607760006009546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561454e57600080fd5b505af4158015614562573d6000803e3d6000fd5b505050506040513d602081101561457857600080fd5b81019080805190602001909291905050505060095460766000846000191660001916815260200190815260200160002060010181600019169055505050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806146cc57506145f6614bdf565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561469057600080fd5b505af11580156146a4573d6000803e3d6000fd5b505050506040513d60208110156146ba57600080fd5b81019080805190602001909291905050505b905090565b60008173__DoublyLinkedList______________________632553148290916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561474057600080fd5b505af4158015614754573d6000803e3d6000fd5b505050506040513d602081101561476a57600080fd5b81019080805190602001909291905050509050919050565b60008273__DoublyLinkedList______________________632a1441789091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561480157600080fd5b505af4158015614815573d6000803e3d6000fd5b505050506040513d602081101561482b57600080fd5b8101908080519060200190929190505050905092915050565b60008273__DoublyLinkedList______________________63cf06689d9091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b1580156148c357600080fd5b505af41580156148d7573d6000803e3d6000fd5b505050506040513d60208110156148ed57600080fd5b8101908080519060200190929190505050905092915050565b600080600060039150600090505b81811015614a7657600060010260001916848260038110151561493357fe5b602002015160001916141561494757614a69565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff858360038110151561499257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156149f157600080fd5b505af1158015614a05573d6000803e3d6000fd5b505050506040513d6020811015614a1b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415614a685760019250614a76565b5b8080600101915050614914565b5050919050565b60008173__DoublyLinkedList______________________6356717c7990916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015614aec57600080fd5b505af4158015614b00573d6000803e3d6000fd5b505050506040513d6020811015614b1657600080fd5b81019080805190602001909291905050509050919050565b60008173__DoublyLinkedList______________________630f77955290916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015614b9d57600080fd5b505af4158015614bb1573d6000803e3d6000fd5b505050506040513d6020811015614bc757600080fd5b81019080805190602001909291905050509050919050565b6000614bec602e5461236e565b905090565b6060604051908101604052806000815260200160008019168152602001600081525090565b828054828255906000526020600020908101928215614c52579160200282015b82811115614c51578235825591602001919060010190614c36565b5b509050614c5f9190614c63565b5090565b614c8591905b80821115614c81576000816000905550600101614c69565b5090565b905600a165627a7a7230582087f62d1cfdc9780549ead55f45709b650bb9236db70b3ac80f42cabc20dd7ed10029",
  "deployedBytecode": "0x6080604052600436106102ca576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303020ea9146102cf57806304f3bcec14610380578063078f872c146103d75780630bcaa451146104085780630c012e591461045b5780630ec8f125146104a85780631478fff1146104f15780631d2103d11461054c5780631d47c3d3146105c65780631ea5d62f14610613578063237286e91461065a57806327618ad9146106a757806327a9bb0e146106e45780632fd010da1461071f578063344e436e146107865780633943380c146107cb578063395ddde9146107fe5780633a85b822146108475780633be88369146108965780633e020d2f146108db5780633f83acff1461092257806341a715891461099357806347d0da14146109e657806347d621a314610a1757806349a428d014610a725780634c5b318a14610ab757806356674c9f14610afc57806358cec13914610b57578063598f0eaf14610bc05780635b712eb614610c3757806370a6f59114610ca85780637246d5a714610cf55780637aafacae14610d8257806382e445c614610de757806385f5276f14610e245780638a2d659714610e7757806395ecdf9e14610eb2578063a1d444a414610ee3578063a1e55acf14610f62578063a6129f8c14610fd0578063a692e0ef14611041578063ac443d9f1461109c578063baf42660146110ed578063bb3b5f6d1461113c578063c004b7de146111a0578063c3093bb1146111f3578063c362c79014611246578063cfd5917214611281578063d8d50179146112b4578063db4ecbc1146113b8578063de233e421461140f578063e14b2c2614611495578063e3f3f7a214611505578063e415667514611540578063e7853aac1461158d578063e81362fe146115da578063eb82718a14611695578063eef7b8f5146116da578063f0ab3dd914611719578063ffec1b211461174c575b600080fd5b3480156102db57600080fd5b5061030c600480360381019080803560001916906020019092919080356000191690602001909291905050506117ad565b60405180856000191660001916815260200184815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561036957808201518184015260208101905061034e565b505050509050019550505050505060405180910390f35b34801561038c57600080fd5b5061039561191a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103e357600080fd5b50610406600480360381019080803560001916906020019092919050505061193f565b005b34801561041457600080fd5b50610441600480360381019080803560001916906020019092919080359060200190929190505050611961565b604051808215151515815260200191505060405180910390f35b34801561046757600080fd5b5061048a60048036038101908080356000191690602001909291905050506119be565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104d760048036038101908080356000191690602001909291905050506119f2565b604051808215151515815260200191505060405180910390f35b3480156104fd57600080fd5b5061052e60048036038101908080356000191690602001909291908035600019169060200190929190505050611a3d565b60405180826000191660001916815260200191505060405180910390f35b34801561055857600080fd5b506105a5600480360381019080803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a7e565b60405180831515151581526020018281526020019250505060405180910390f35b3480156105d257600080fd5b506105f56004803603810190808035600019169060200190929190505050611bb3565b60405180826000191660001916815260200191505060405180910390f35b34801561061f57600080fd5b50610658600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050611bf2565b005b34801561066657600080fd5b506106896004803603810190808035600019169060200190929190505050611e4a565b60405180826000191660001916815260200191505060405180910390f35b3480156106b357600080fd5b506106e26004803603810190808035600019169060200190929190803515159060200190929190505050611e5e565b005b3480156106f057600080fd5b5061071d600480360381019080803560001916906020019092919080359060200190929190505050611eb1565b005b34801561072b57600080fd5b506107846004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919080359060200190929190505050611f16565b005b34801561079257600080fd5b506107c960048036038101908080356000191690602001909291908035906020019092919080359060200190929190505050612120565b005b3480156107d757600080fd5b506107e06121a9565b60405180826000191660001916815260200191505060405180910390f35b34801561080a57600080fd5b5061082d60048036038101908080356000191690602001909291905050506121af565b604051808215151515815260200191505060405180910390f35b34801561085357600080fd5b506108806004803603810190808035600019169060200190929190803590602001909291905050506121e7565b6040518082815260200191505060405180910390f35b3480156108a257600080fd5b506108c560048036038101908080356000191690602001909291905050506122ce565b6040518082815260200191505060405180910390f35b3480156108e757600080fd5b50610920600480360381019080803560001916906020019092919080359060200190929190803515159060200190929190505050612309565b005b34801561092e57600080fd5b50610951600480360381019080803560001916906020019092919050505061236e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099f57600080fd5b506109cc60048036038101908080356000191690602001909291908035906020019092919050505061244a565b604051808215151515815260200191505060405180910390f35b3480156109f257600080fd5b50610a1560048036038101908080356000191690602001909291905050506124a7565b005b348015610a2357600080fd5b50610a54600480360381019080803560001916906020019092919080356000191690602001909291905050506124ef565b60405180826000191660001916815260200191505060405180910390f35b348015610a7e57600080fd5b50610aa16004803603810190808035600019169060200190929190505050612525565b6040518082815260200191505060405180910390f35b348015610ac357600080fd5b50610ae66004803603810190808035600019169060200190929190505050612563565b6040518082815260200191505060405180910390f35b348015610b0857600080fd5b50610b396004803603810190808035600019169060200190929190803560001916906020019092919050505061258e565b60405180826000191660001916815260200191505060405180910390f35b348015610b6357600080fd5b50610bbe60048036038101908080356000191690602001909291908035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506125c4565b005b348015610bcc57600080fd5b50610c19600480360381019080803560001916906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612658565b60405180826000191660001916815260200191505060405180910390f35b348015610c4357600080fd5b50610c6660048036038101908080356000191690602001909291905050506126e6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610cb457600080fd5b50610cd7600480360381019080803560001916906020019092919050505061272e565b60405180826000191660001916815260200191505060405180910390f35b348015610d0157600080fd5b50610d246004803603810190808035600019169060200190929190505050612742565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015610d6d578082015181840152602081019050610d52565b50505050905001935050505060405180910390f35b348015610d8e57600080fd5b50610dbb600480360381019080803560001916906020019092919080359060200190929190505050612862565b604051808481526020018381526020018260001916600019168152602001935050505060405180910390f35b348015610df357600080fd5b50610e226004803603810190808035600019169060200190929190803515159060200190929190505050612977565b005b348015610e3057600080fd5b50610e5d600480360381019080803560001916906020019092919080359060200190929190505050612bb2565b604051808215151515815260200191505060405180910390f35b348015610e8357600080fd5b50610eb0600480360381019080803560001916906020019092919080359060200190929190505050612bfc565b005b348015610ebe57600080fd5b50610ee16004803603810190808035600019169060200190929190505050612c39565b005b348015610eef57600080fd5b50610f606004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200191909192939192939080359060200190929190803515159060200190929190505050612e47565b005b348015610f6e57600080fd5b50610fb3600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001919091929391929390505050613222565b604051808381526020018281526020019250505060405180910390f35b348015610fdc57600080fd5b5061103f6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291908035906020019092919080359060200190929190505050613349565b005b34801561104d57600080fd5b5061107e60048036038101908080356000191690602001909291908035600019169060200190929190505050613461565b60405180826000191660001916815260200191505060405180910390f35b3480156110a857600080fd5b506110eb6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134a2565b005b3480156110f957600080fd5b506111266004803603810190808035600019169060200190929190803590602001909291905050506136d8565b6040518082815260200191505060405180910390f35b34801561114857600080fd5b506111836004803603810190808035600019169060200190929190803590602001908201803590602001919091929391929390505050613728565b604051808381526020018281526020019250505060405180910390f35b3480156111ac57600080fd5b506111f160048036038101908080356000191690602001909291908035906020019092919080356000191690602001909291908035906020019092919050505061383d565b005b3480156111ff57600080fd5b50611244600480360381019080803560001916906020019092919080359060200190820180359060200191909192939192939080359060200190929190505050613a00565b005b34801561125257600080fd5b5061127f600480360381019080803560001916906020019092919080359060200190929190505050613ae2565b005b34801561128d57600080fd5b50611296613b56565b60405180826000191660001916815260200191505060405180910390f35b3480156112c057600080fd5b506112e36004803603810190808035600019169060200190929190505050613b67565b604051808b600019166000191681526020018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188600019166000191681526020018781526020018681526020018560001916600019168152602001846000191660001916815260200183151515158152602001821515151581526020019a505050505050505050505060405180910390f35b3480156113c457600080fd5b506113cd613c64565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561141b57600080fd5b5061143e6004803603810190808035600019169060200190929190505050613c8a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015611481578082015181840152602081019050611466565b505050509050019250505060405180910390f35b3480156114a157600080fd5b506114e46004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613d5d565b60405180831515151581526020018281526020019250505060405180910390f35b34801561151157600080fd5b5061153e600480360381019080803560001916906020019092919080359060200190929190505050613e80565b005b34801561154c57600080fd5b5061156f6004803603810190808035600019169060200190929190505050613ec0565b60405180826000191660001916815260200191505060405180910390f35b34801561159957600080fd5b506115bc6004803603810190808035600019169060200190929190505050613ef4565b60405180826000191660001916815260200191505060405180910390f35b3480156115e657600080fd5b50611637600480360381019080803560001916906020019092919080359060200190929190803590602001908201803590602001919091929391929390803515159060200190929190505050613f33565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b83811015611680578082015181840152602081019050611665565b50505050905001935050505060405180910390f35b3480156116a157600080fd5b506116c460048036038101908080356000191690602001909291905050506140c2565b6040518082815260200191505060405180910390f35b3480156116e657600080fd5b50611717600480360381019080803560001916906020019092919080356000191690602001909291905050506140ea565b005b34801561172557600080fd5b5061172e6141ab565b60405180826000191660001916815260200191505060405180910390f35b34801561175857600080fd5b506117ab60048036038101908080356000191690602001909291908035600019169060200190929190803590602001908201803590602001919091929391929390803590602001909291905050506141bc565b005b600080606060006076600087600019166000191681526020019081526020016000206009016000866000191660001916815260200190815260200160002073__DaoStructs____________________________6310d31f6490916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060006040518083038186803b15801561185757600080fd5b505af415801561186b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250608081101561189557600080fd5b81019080805190602001909291908051906020019092919080516401000000008111156118c157600080fd5b828101905060208101848111156118d757600080fd5b81518560208202830111640100000000821117156118f457600080fd5b505092919060200180519060200190929190505050935093509350935092959194509250565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61194a6014546142b5565b151561195557600080fd5b61195e816143bf565b50565b600061196b6145b7565b151561197657600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160009054906101000a900460ff16905092915050565b60008060766000846000191660001916815260200190815260200160002090506119ea816003016146d1565b915050919050565b60006119fc6145b7565b1515611a0757600080fd5b607660008360001916600019168152602001908152602001600020600a0160050160009054906101000a900460ff169050919050565b6000611a476145b7565b1515611a5257600080fd5b611a7660776000856000191660001916815260200190815260200160002083614782565b905092915050565b600080611a896145b7565b1515611a9457600080fd5b607660008660001916600019168152602001908152602001600020601001600085815260200190815260200160002073__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015611b6257600080fd5b505af4158015611b76573d6000803e3d6000fd5b505050506040513d6040811015611b8c57600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b6000611bbd6145b7565b1515611bc857600080fd5b611beb6077600084600019166000191681526020019081526020016000206146d1565b9050919050565b611bfd6018546142b5565b1515611c0857600080fd5b801515611c1d57611c18836143bf565b611dfb565b6000821415611dfa57607760006007546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015611cbf57600080fd5b505af4158015611cd3573d6000803e3d6000fd5b505050506040513d6020811015611ce957600080fd5b810190808051906020019092919050505050607760006008546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015611d9457600080fd5b505af4158015611da8573d6000803e3d6000fd5b505050506040513d6020811015611dbe57600080fd5b81019080805190602001909291905050505060085460766000856000191660001916815260200190815260200160002060010181600019169055505b5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060050160006101000a81548160ff021916908315150217905550505050565b6000611e57607083614844565b9050919050565b611e696018546142b5565b1515611e7457600080fd5b80607660008460001916600019168152602001908152602001600020600a0160050160016101000a81548160ff0219169083151502179055505050565b611ebc601e546142b5565b1515611ec757600080fd5b6001607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160026101000a81548160ff0219169083151502179055505050565b6000611f236017546142b5565b1515611f2e57600080fd5b60766000866000191660001916815260200190815260200160002090508215612037578181600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561203257600081600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b612119565b8181600a0160040160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600081600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561211857600081600a0160030160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5050505050565b61216260606040519081016040528060145460001916600019168152602001601854600019166000191681526020016003546000191660001916815250614906565b151561216d57600080fd5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060000181905550505050565b60015481565b6000607660008360001916600019168152602001908152602001600020600a0160050160019054906101000a900460ff169050919050565b60006121f16145b7565b15156121fc57600080fd5b60766000846000191660001916815260200190815260200160002073__DaoStructs____________________________631728cc369091846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561228b57600080fd5b505af415801561229f573d6000803e3d6000fd5b505050506040513d60208110156122b557600080fd5b8101908080519060200190929190505050905092915050565b60006122d86145b7565b15156122e357600080fd5b607660008360001916600019168152602001908152602001600020601101549050919050565b6123146018546142b5565b151561231f57600080fd5b80607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060050160016101000a81548160ff021916908315150217905550505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561240857600080fd5b505af115801561241c573d6000803e3d6000fd5b505050506040513d602081101561243257600080fd5b81019080805190602001909291905050509050919050565b60006124546145b7565b151561245f57600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160029054906101000a900460ff16905092915050565b6124b26014546142b5565b15156124bd57600080fd5b6124c6816119be565b607660008360001916600019168152602001908152602001600020601301816000191690555050565b600080607660008560001916600019168152602001908152602001600020905061251c8160030184614844565b91505092915050565b600061252f6145b7565b151561253a57600080fd5b607660008360001916600019168152602001908152602001600020600a01600001549050919050565b6000607660008360001916600019168152602001908152602001600020601401805490509050919050565b60008060766000856000191660001916815260200190815260200160002090506125bb8160030184614782565b91505092915050565b6125cf6017546142b5565b15156125da57600080fd5b82607660008660001916600019168152602001908152602001600020601001600083815260200190815260200160002060020160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816000191690555050505050565b60006126626145b7565b151561266d57600080fd5b607660008560001916600019168152602001908152602001600020601001600084815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490509392505050565b600060766000836000191660001916815260200190815260200160002060150160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061273b607083614782565b9050919050565b606060008061274f6145b7565b151561275a57600080fd5b6076600085600019166000191681526020019081526020016000206013015490506003546000191681600019161415151561279457600080fd5b6076600085600019166000191681526020019081526020016000206009016000826000191660001916815260200190815260200160002060040180548060200260200160405190810160405280929190818152602001828054801561281857602002820191906000526020600020905b815481526020019060010190808311612804575b505050505092506076600085600019166000191681526020019081526020016000206009016000826000191660001916815260200190815260200160002060030154915050915091565b60008060006060607660008760001916600019168152602001908152602001600020601401805480602002602001604051908101604052809291908181526020016000905b8282101561290057838290600052602060002090600302016060604051908101604052908160008201548152602001600182015460001916600019168152602001600282015481525050815260200190600101906128a7565b50505050905080518510151561291557600080fd5b808581518110151561292357fe5b90602001906020020151604001519350808581518110151561294157fe5b90602001906020020151600001519250808581518110151561295f57fe5b90602001906020020151602001519150509250925092565b6129826018546142b5565b151561298d57600080fd5b80607660008460001916600019168152602001908152602001600020600a0160050160006101000a81548160ff0219169083151502179055508015612ba457607760006006546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612a6557600080fd5b505af4158015612a79573d6000803e3d6000fd5b505050506040513d6020811015612a8f57600080fd5b810190808051906020019092919050505050607760006007546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612b3a57600080fd5b505af4158015612b4e573d6000803e3d6000fd5b505050506040513d6020811015612b6457600080fd5b8101908080519060200190929190505050506007546076600084600019166000191681526020019081526020016000206001018160001916905550612bae565b612bad826143bf565b5b5050565b6000607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060050160019054906101000a900460ff16905092915050565b612c076014546142b5565b1515612c1257600080fd5b80607660008460001916600019168152602001908152602001600020601201819055505050565b6000612c466018546142b5565b1515612c5157600080fd5b60766000836000191660001916815260200190815260200160002060010154905060776000826000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612d0957600080fd5b505af4158015612d1d573d6000803e3d6000fd5b505050506040513d6020811015612d3357600080fd5b81019080805190602001909291905050505060776000600a546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612dde57600080fd5b505af4158015612df2573d6000803e3d6000fd5b505050506040513d6020811015612e0857600080fd5b810190808051906020019092919050505050600a5460766000846000191660001916815260200190815260200160002060010181600019169055505050565b612e526014546142b5565b1515612e5d57600080fd5b600354600019166076600088600019166000191681526020019081526020016000206000015460001916148015612e9e575060035460001916866000191614155b1515612ea957600080fd5b607073__DoublyLinkedList______________________63582f30b49091886040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612f2757600080fd5b505af4158015612f3b573d6000803e3d6000fd5b505050506040513d6020811015612f5157600080fd5b810190808051906020019092919050505050607760006005546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091886040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b158015612ffc57600080fd5b505af4158015613010573d6000803e3d6000fd5b505050506040513d602081101561302657600080fd5b8101908080519060200190929190505050508560766000886000191660001916815260200190815260200160002060000181600019169055508460766000886000191660001916815260200190815260200160002060150160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554607660008860001916600019168152602001908152602001600020600101816000191690555042607660008860001916600019168152602001908152602001600020600201819055508060766000886000191660001916815260200190815260200160002060160160156101000a81548160ff02191690831515021790555060766000876000191660001916815260200190815260200160002073__DaoStructs____________________________63ea496bc99091888787876040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600019166000191681526020018060200183815260200182810382528585828181526020019250602002808284378201915050965050505050505060006040518083038186803b15801561320257600080fd5b505af4158015613216573d6000803e3d6000fd5b50505050505050505050565b60008061322d6145b7565b151561323857600080fd5b607660008760001916600019168152602001908152602001600020601001600086815260200190815260200160002073__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b1580156132f757600080fd5b505af415801561330b573d6000803e3d6000fd5b505050506040513d604081101561332157600080fd5b8101908080519060200190929190805190602001909291905050509150915094509492505050565b6133546017546142b5565b151561335f57600080fd5b607660008660001916600019168152602001908152602001600020601001600082815260200190815260200160002073__DaoStructs____________________________631a14c51b90918686866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018315151515815260200182815260200194505050505060006040518083038186803b15801561344257600080fd5b505af4158015613456573d6000803e3d6000fd5b505050505050505050565b600061346b6145b7565b151561347657600080fd5b61349a60776000856000191660001916815260200190815260200160002083614844565b905092915050565b60006134af6014546142b5565b15156134ba57600080fd5b6076600084600019166000191681526020019081526020016000209050818160160160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654816001018160001916905550607760006005546000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b1580156135c257600080fd5b505af41580156135d6573d6000803e3d6000fd5b505050506040513d60208110156135ec57600080fd5b810190808051906020019092919050505050607760006006546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561369757600080fd5b505af41580156136ab573d6000803e3d6000fd5b505050506040513d60208110156136c157600080fd5b810190808051906020019092919050505050505050565b60006136e26145b7565b15156136ed57600080fd5b607660008460001916600019168152602001908152602001600020601001600083815260200190815260200160002060000154905092915050565b6000806137336145b7565b151561373e57600080fd5b607660008660001916600019168152602001908152602001600020600a0173__DaoStructs____________________________63b31ee28c909186866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200182810382528484828181526020019250602002808284378201915050945050505050604080518083038186803b1580156137ec57600080fd5b505af4158015613800573d6000803e3d6000fd5b505050506040513d604081101561381657600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b613845614bf1565b6138506014546142b5565b151561385b57600080fd5b6009546000191660766000876000191660001916815260200190815260200160002060010154600019161415151561389257600080fd5b818160000181815250508281602001906000191690816000191681525050838160400181815250506076600086600019166000191681526020019081526020016000206014018190806001815401808255809150509060018203906000526020600020906003020160009091929091909150600082015181600001556020820151816001019060001916905560408201518160020155505050600c5484141561397157600160766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f9565b600d548414156139b757600060766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f8565b600160766000876000191660001916815260200190815260200160002060160160146101000a81548160ff0219169083151502179055506139f7856143bf565b5b5b5050505050565b6000613a0d6014546142b5565b1515613a1857600080fd5b60766000866000191660001916815260200190815260200160002060130154905060035460001916816000191614151515613a5257600080fd5b8383607660008860001916600019168152602001908152602001600020600901600084600019166000191681526020019081526020016000206004019190613a9b929190614c16565b508160766000876000191660001916815260200190815260200160002060090160008360001916600019168152602001908152602001600020600301819055505050505050565b613b2460606040519081016040528060185460001916600019168152602001601e54600019166000191681526020016014546000191660001916815250614906565b1515613b2f57600080fd5b80607660008460001916600019168152602001908152602001600020601101819055505050565b6000613b626070614a7d565b905090565b6000806000806000806000806000806000613b806145b7565b1515613b8b57600080fd5b607660008d60001916600019168152602001908152602001600020905080600001549a508060150160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1699508060160160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1698508060010154975080600201549650613c1781600301614b2e565b9550613c25816003016146d1565b9450806013015493508060160160149054906101000a900460ff1692508060160160159054906101000a900460ff169150509193959799509193959799565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600060766000846000191660001916815260200190815260200160002060130154905060035460001916816000191614151515613cc857600080fd5b60766000846000191660001916815260200190815260200160002060090160008260001916600019168152602001908152602001600020600501805480602002602001604051908101604052809291908181526020018280548015613d5057602002820191906000526020600020905b81546000191681526020019060010190808311613d38575b5050505050915050919050565b600080613d686145b7565b1515613d7357600080fd5b607660008560001916600019168152602001908152602001600020600a0173__DaoStructs____________________________634bf150b99091856040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050604080518083038186803b158015613e3057600080fd5b505af4158015613e44573d6000803e3d6000fd5b505050506040513d6040811015613e5a57600080fd5b810190808051906020019092919080519060200190929190505050915091509250929050565b613e8b6014546142b5565b1515613e9657600080fd5b80607660008460001916600019168152602001908152602001600020600a01600001819055505050565b6000806076600084600019166000191681526020019081526020016000209050613eec81600301614a7d565b915050919050565b6000613efe6145b7565b1515613f0957600080fd5b613f2c607760008460001916600019168152602001908152602001600020614a7d565b9050919050565b60606000613f3f6145b7565b1515613f4a57600080fd5b607660008860001916600019168152602001908152602001600020601001600087815260200190815260200160002073__DaoStructs____________________________63f53380cf90918787876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808581526020018060200183151515158152602001828103825285858281815260200192506020028082843782019150509550505050505060006040518083038186803b15801561401657600080fd5b505af415801561402a573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250604081101561405457600080fd5b81019080805164010000000081111561406c57600080fd5b8281019050602081018481111561408257600080fd5b815185602082028301116401000000008211171561409f57600080fd5b505092919060200180519060200190929190505050915091509550959350505050565b6000607660008360001916600019168152602001908152602001600020601201549050919050565b60006140f76014546142b5565b151561410257600080fd5b6076600084600019166000191681526020019081526020016000206013015490506003546000191681600019161415151561413c57600080fd5b60766000846000191660001916815260200190815260200160002060090160008260001916600019168152602001908152602001600020600501829080600181540180825580915050906001820390600052602060002001600090919290919091509060001916905550505050565b60006141b760706146d1565b905090565b6141c76014546142b5565b15156141d257600080fd5b60766000866000191660001916815260200190815260200160002073__DaoStructs____________________________63ea496bc99091868686866040518663ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018086815260200185600019166000191681526020018060200183815260200182810382528585828181526020019250602002808284378201915050965050505050505060006040518083038186803b15801561429657600080fd5b505af41580156142aa573d6000803e3d6000fd5b505050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561434f57600080fd5b505af1158015614363573d6000803e3d6000fd5b505050506040513d602081101561437957600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b600060766000836000191660001916815260200190815260200160002060010154905060776000826000191660001916815260200190815260200160002073__DoublyLinkedList______________________6352c6bbf49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561447957600080fd5b505af415801561448d573d6000803e3d6000fd5b505050506040513d60208110156144a357600080fd5b810190808051906020019092919050505050607760006009546000191660001916815260200190815260200160002073__DoublyLinkedList______________________63582f30b49091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561454e57600080fd5b505af4158015614562573d6000803e3d6000fd5b505050506040513d602081101561457857600080fd5b81019080805190602001909291905050505060095460766000846000191660001916815260200190815260200160002060010181600019169055505050565b60003273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806146cc57506145f6614bdf565b73ffffffffffffffffffffffffffffffffffffffff16639b19251a336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561469057600080fd5b505af11580156146a4573d6000803e3d6000fd5b505050506040513d60208110156146ba57600080fd5b81019080805190602001909291905050505b905090565b60008173__DoublyLinkedList______________________632553148290916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b15801561474057600080fd5b505af4158015614754573d6000803e3d6000fd5b505050506040513d602081101561476a57600080fd5b81019080805190602001909291905050509050919050565b60008273__DoublyLinkedList______________________632a1441789091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561480157600080fd5b505af4158015614815573d6000803e3d6000fd5b505050506040513d602081101561482b57600080fd5b8101908080519060200190929190505050905092915050565b60008273__DoublyLinkedList______________________63cf06689d9091846040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b1580156148c357600080fd5b505af41580156148d7573d6000803e3d6000fd5b505050506040513d60208110156148ed57600080fd5b8101908080519060200190929190505050905092915050565b600080600060039150600090505b81811015614a7657600060010260001916848260038110151561493357fe5b602002015160001916141561494757614a69565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff858360038110151561499257fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156149f157600080fd5b505af1158015614a05573d6000803e3d6000fd5b505050506040513d6020811015614a1b57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415614a685760019250614a76565b5b8080600101915050614914565b5050919050565b60008173__DoublyLinkedList______________________6356717c7990916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015614aec57600080fd5b505af4158015614b00573d6000803e3d6000fd5b505050506040513d6020811015614b1657600080fd5b81019080805190602001909291905050509050919050565b60008173__DoublyLinkedList______________________630f77955290916040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082815260200191505060206040518083038186803b158015614b9d57600080fd5b505af4158015614bb1573d6000803e3d6000fd5b505050506040513d6020811015614bc757600080fd5b81019080805190602001909291905050509050919050565b6000614bec602e5461236e565b905090565b6060604051908101604052806000815260200160008019168152602001600081525090565b828054828255906000526020600020908101928215614c52579160200282015b82811115614c51578235825591602001919060010190614c36565b5b509050614c5f9190614c63565b5090565b614c8591905b80821115614c81576000816000905550600101614c69565b5090565b905600a165627a7a7230582087f62d1cfdc9780549ead55f45709b650bb9236db70b3ac80f42cabc20dd7ed10029",
  "sourceMap": "299:24567:60:-;;;177:3:3;169:12;;147:34;;;;;;;219:3;187:36;;;;;;;;;;;;;;;;;;;;230:65;;;;;;;;301:53;;;;;;;;360:61;;;;;;;;427:57;;;;;;;;490:55;;;;;;;;551:59;;;;;;;;643:1;617:27;;677:1;650:28;;713:1;684:30;;758:1;721:38;;800:1;765:36;;843:1;807:37;;851:52;;;;;;;;909:66;;;;;;;;981:80;;;;;;;;1097:28;;;;;;;;1131:62;;;;;;;;1199:56;;;;;;;;1261:42;;;;;;;;1309:56;;;;;;;;1371:65;;;;;;;;1442:46;;;;;;;;1494:60;;;;;;;;1560:66;;;;;;;;1632:40;;;;;;;;1678:60;;;;;;;;1744:54;;;;;;;;1804:52;;;;;;;;1888:46;;;;;;;;1940:54;;;;;;;;2000:60;;;;;;;;2066:66;;;;;;;;2164:44;;;;;;;;2214:60;;;;;;;;2280;;;;;;;;2346:62;;;;;;;;2414:58;;;;;;;;2478:60;;;;;;;;2544:58;;;;;;;;2608:56;;;;;;;;2670:60;;;;;;;;2736:70;;;;;;;;2812:78;;;;;;;;2897:36;;;;;;;;2939;;;;;;;;2981:40;;;;;;;;3047:1;3028:20;;;;;;;;;;;;;;;;;;;;3077:1;3054:24;;;;;;;;;;;;;;;;;;;;3103:1;3084:20;;;;;;;;;;;;;;;;;;;;3135:1;3110:26;;;;;;;;;;;;;;;;;;;;3170:7;3143:34;;3184:57;;;;;;;;3247:62;;;;;;;;3315:76;;;;;;;;3398:64;;;;;;;;3468:52;;;;;;;;3526:58;;;;;;;;3590:56;;;;;;;;3652:67;;;;;;;;3725:65;;;;;;;;3797:84;;;;;;;;3887:88;;;;;;;;3981:87;;;;;;;;4074:91;;;;;;;;4171:84;;;;;;;;4261:88;;;;;;;;4355:87;;;;;;;;4448:91;;;;;;;;4545:87;;;;;;;;4638:91;;;;;;;;4736:62;;;;;;;;4804:66;;;;;;;;4876:64;;;;;;;;4946:68;;;;;;;;5021:51;;;;;;;;5078:76;;;;;;;;5160:75;;;;;;;;5242:65;;;;;;;;5313:79;;;;;;;;5398:89;;;;;;;;5494:68;;;;;;;;5568:56;;;;;;;;5630:72;;;;;;;;5740:91;;;;;;;;5838:72;;;;;;;;5916:76;;;;;;;;5999:78;;;;;;;;6083:76;;;;;;;;6166:73;;;;;;;;6245:77;;;;;;;;6329;;;;;;;;6412:81;;;;;;;;6500:79;;;;;;;;6585:75;;;;;;;;6667:74;;;;;;;;6747;;;;;;;;6828:83;;;;;;;;6917:86;;;;;;;;7009;;;;;;;;7102:67;;;;;;;;7175;;;;;;;;7249:63;;;;;;;;7319:77;;;;;;;;7403:66;;;;;;;;7476:71;;;;;;;;7554:72;;;;;;;;7632:78;;;;;;;;7716:82;;;;;;;;7805:62;;;;;;;;7873:68;;;;;;;;1148:101:60;8:9:-1;5:2;;;30:1;27;20:12;5:2;1148:101:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1204:37;1209:20;;1231:9;1204:4;;;:37;;;:::i;:::-;1196:46;;;;;;;;1148:101;299:24567;;1530:450:67;1617:13;1640:15;1675:9;1658:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:44:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:44:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1658:44:67;;;;;;;;;;;;;;;;1640:62;;1726:5;1712:19;;:10;:19;;;1708:268;;;1768:4;1741:16;;:32;;;;;;;;;;;;;;;;;;1792:9;1781:8;;:20;;;;;;;;;;;;;;;;;;1815:4;1809:3;:10;;;;;;;1852:8;;;;;;;;;;;1835:49;;;1885:3;;1890:16;;;;;;;;;;;1835:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1835:72:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1835:72:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1835:72:67;;;;;;;;;;;;;;;;1827:81;;;;;;;;1927:4;1916:15;;1708:268;;;1964:5;1953:16;;1708:268;1530:450;;;;;:::o;299:24567:60:-;;;;;;;",
  "deployedSourceMap": "299:24567:60:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10694:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10694:350:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10694:350:60;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;24051:156:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24051:156:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4361:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4361:257:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12667:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12667:280:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4118:237;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4118:237:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10053:306;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10053:306:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6838:279;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6838:279:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9113:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9113:230:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19321:582;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19321:582:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7861:217;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7861:217:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20455:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20455:214:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24632:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24632:232:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22636:798;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22636:798:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20144:305;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20144:305:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14169:183:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14169:183:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11751:261;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11751:261:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14567:237;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14567:237:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20675:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20675:234:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15498:266:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15498:266:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18076:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18076:203:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13193:350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13193:350:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:239;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4624:239:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3503:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3503:187:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13797:366;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13797:366:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23440:283;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23440:283:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6547:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6547:285:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3314:183;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3314:183:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8277:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8277:225:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11234:511;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11234:511:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11234:511:60;;;;;;;;;;;;;;;;;;3696:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3696:416:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18771:544;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18771:544:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14358:203;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14358:203:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21192:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21192:206:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24213:413;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24213:413:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15853:816;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15853:816:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5421:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5421:301:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23729:316;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23729:316:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9547:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9547:298:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18285:480;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18285:480:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4869:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4869:259:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5134:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5134:281:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21404:859;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21404:859:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17113:496;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17113:496:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20915:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20915:271:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7240:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7240:153:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:1068;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:1068:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;15159:333:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15159:333:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;15159:333:60;;;;;;;;;;;;;;;;;6069:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6069:259:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19909:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19909:229:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12199:282:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8692:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8692:232:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5728:335;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5728:335:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5728:335:60;;;;;;;;;;;;;;;;;;14810:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14810:195:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:394;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17676:394:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:151;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7515:151:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16675:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16675:325:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10694:350;10820:12;10846:16;10876:28;10918:20;10970:13;:26;10984:11;10970:26;;;;;;;;;;;;;;;;;:43;;:53;11014:8;10970:53;;;;;;;;;;;;;;;;;:65;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10970:67:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10970:67:60;;;;;;39:16:-1;36:1;17:17;2:54;10970:67:60;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:3;8;5:12;2:2;;;30:1;27;20:12;2:2;10970:67:60;;;;;;;;;;;;;;;;;;;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;10970:67:60;;;;;;;;;;;;;;;;;10963:74;;;;;;;;10694:350;;;;;;;:::o;237:23:67:-;;;;;;;;;;;;;:::o;24051:156:60:-;24132:23;24142:12;;24132:9;:23::i;:::-;24124:32;;;;;;;;24166:34;24188:11;24166:21;:34::i;:::-;24051:156;:::o;4361:257::-;4477:12;4513:23;:21;:23::i;:::-;4505:32;;;;;;;;4557:13;:26;4571:11;4557:26;;;;;;;;;;;;;;;;;:39;;:47;4597:6;4557:47;;;;;;;;;;;:54;;;;;;;;;;;;4547:64;;4361:257;;;;:::o;12667:280::-;12765:16;12797:37;12837:13;:26;12851:11;12837:26;;;;;;;;;;;;;;;;;12797:66;;12884:56;12910:9;:29;;12884:25;:56::i;:::-;12873:67;;12667:280;;;;:::o;4118:237::-;4223:12;4259:23;:21;:23::i;:::-;4251:32;;;;;;;;4303:13;:26;4317:11;4303:26;;;;;;;;;;;;;;;;;:38;;:45;;;;;;;;;;;;4293:55;;4118:237;;;:::o;10053:306::-;10173:11;10208:23;:21;:23::i;:::-;10200:32;;;;;;;;10248:104;10291:16;:26;10308:8;10291:26;;;;;;;;;;;;;;;;;10331:11;10248:29;:104::i;:::-;10242:110;;10053:306;;;;:::o;6838:279::-;6954:10;6966:15;7005:23;:21;:23::i;:::-;6997:32;;;;;;;;7046:13;:26;7060:11;7046:26;;;;;;;;;;;;;;;;;:39;;:47;7086:6;7046:47;;;;;;;;;;;:56;;;;7103:6;7046:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7046:64:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7046:64:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7046:64:60;;;;;;;;;;;;;;;;;;;;;;;;;7039:71;;;;6838:279;;;;;;:::o;9113:230::-;9208:11;9243:23;:21;:23::i;:::-;9235:32;;;;;;;;9283:53;9309:16;:26;9326:8;9309:26;;;;;;;;;;;;;;;;;9283:25;:53::i;:::-;9277:59;;9113:230;;;:::o;19321:582::-;19434:37;19444:26;;19434:9;:37::i;:::-;19426:46;;;;;;;;19488:7;19487:8;19483:340;;;19511:34;19533:11;19511:21;:34::i;:::-;19483:340;;;19576:1;19566:6;:11;19562:261;;;19593:16;:42;19610:24;;19593:42;;;;;;;;;;;;;;;;;:54;;;;19648:11;19593:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19593:67:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19593:67:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19593:67:60;;;;;;;;;;;;;;;;;19674:16;:40;19691:22;;19674:40;;;;;;;;;;;;;;;;;:47;;;;19722:11;19674:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19674:60:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19674:60:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19674:60:60;;;;;;;;;;;;;;;;;19790:22;;19748:13;:26;19762:11;19748:26;;;;;;;;;;;;;;;;;:39;;:64;;;;;;;19562:261;19483:340;19889:7;19832:13;:26;19846:11;19832:26;;;;;;;;;;;;;;;;;:39;;:47;19872:6;19832:47;;;;;;;;;;;:54;;;:64;;;;;;;;;;;;;;;;;;19321:582;;;:::o;7861:217::-;7952:11;7985:86;8024:12;8050:11;7985:25;:86::i;:::-;7979:92;;7861:217;;;:::o;20455:214::-;20557:37;20567:26;;20557:9;:37::i;:::-;20549:46;;;;;;;;20654:8;20605:13;:26;20619:11;20605:26;;;;;;;;;;;;;;;;;:38;;:46;;;:57;;;;;;;;;;;;;;;;;;20455:214;;:::o;24632:232::-;24740:39;24750:28;;24740:9;:39::i;:::-;24732:48;;;;;;;;24853:4;24790:13;:26;24804:11;24790:26;;;;;;;;;;;;;;;;;:39;;:53;24830:12;24790:53;;;;;;;;;;;:60;;;:67;;;;;;;;;;;;;;;;;;24632:232;;:::o;22636:798::-;22841:37;22799:30;22809:19;;22799:9;:30::i;:::-;22791:39;;;;;;;;22881:13;:26;22895:11;22881:26;;;;;;;;;;;;;;;;;22841:66;;22921:5;22917:511;;;22983:7;22942:9;:21;;:30;;:38;22973:6;22942:38;;;;;;;;;;;;;;;:48;;;;23048:1;23008:9;:21;;:29;;:37;23038:6;23008:37;;;;;;;;;;;;;;;;:41;23004:200;;;23188:1;23148:9;:21;;:29;;:37;23178:6;23148:37;;;;;;;;;;;;;;;:41;;;;23004:200;22917:511;;;23274:7;23234:9;:21;;:29;;:37;23264:6;23234:37;;;;;;;;;;;;;;;:47;;;;23340:1;23299:9;:21;;:30;;:38;23330:6;23299:38;;;;;;;;;;;;;;;;:42;23295:123;;;23402:1;23361:9;:21;;:30;;:38;23392:6;23361:38;;;;;;;;;;;;;;;:42;;;;23295:123;22917:511;22636:798;;;;;:::o;20144:305::-;20294:71;;;;;;;;;;20310:12;;20294:71;;;;;;;;;;20324:26;;20294:71;;;;;;;;;;20352:11;;20294:71;;;;;;;;;:14;:71::i;:::-;20286:80;;;;;;;;20437:5;20377:13;:26;20391:11;20377:26;;;;;;;;;;;;;;;;;:39;;:47;20417:6;20377:47;;;;;;;;;;;:57;;:65;;;;20144:305;;;:::o;264:18:67:-;;;;:::o;14169:183:60:-;14259:13;14299;:26;14313:11;14299:26;;;;;;;;;;;;;;;;;:38;;:46;;;;;;;;;;;;14288:57;;14169:183;;;:::o;11751:261::-;11864:16;11904:23;:21;:23::i;:::-;11896:32;;;;;;;;11949:13;:26;11963:11;11949:26;;;;;;;;;;;;;;;;;:48;;;;11998:6;11949:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11949:56:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11949:56:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11949:56:60;;;;;;;;;;;;;;;;11938:67;;11751:261;;;;:::o;14567:237::-;14671:15;14710:23;:21;:23::i;:::-;14702:32;;;;;;;;14754:13;:26;14768:11;14754:26;;;;;;;;;;;;;;;;;:43;;;14744:53;;14567:237;;;:::o;20675:234::-;20788:37;20798:26;;20788:9;:37::i;:::-;20780:46;;;;;;;;20894:8;20836:13;:26;20850:11;20836:26;;;;;;;;;;;;;;;;;:39;;:47;20876:6;20836:47;;;;;;;;;;;:55;;;:66;;;;;;;;;;;;;;;;;;20675:234;;;:::o;2380:179:67:-;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;15498:266:60:-;15617:12;15653:23;:21;:23::i;:::-;15645:32;;;;;;;;15697:13;:26;15711:11;15697:26;;;;;;;;;;;;;;;;;:39;;:53;15737:12;15697:53;;;;;;;;;;;:60;;;;;;;;;;;;15687:70;;15498:266;;;;:::o;18076:203::-;18160:23;18170:12;;18160:9;:23::i;:::-;18152:32;;;;;;;;18237:35;18260:11;18237:22;:35::i;:::-;18195:13;:26;18209:11;18195:26;;;;;;;;;;;;;;;;;:39;;:77;;;;;;;18076:203;:::o;13193:350::-;13309:20;13345:37;13385:13;:26;13399:11;13385:26;;;;;;;;;;;;;;;;;13345:66;;13436:100;13475:9;:29;;13518:8;13436:25;:100::i;:::-;13421:115;;13193:350;;;;;:::o;4624:239::-;4727:14;4765:23;:21;:23::i;:::-;4757:32;;;;;;;;4808:13;:26;4822:11;4808:26;;;;;;;;;;;;;;;;;:38;;:48;;;4799:57;;4624:239;;;:::o;3503:187::-;3598:15;3639:13;:26;3653:11;3639:26;;;;;;;;;;;;;;;;;:37;;:44;;;;3629:54;;3503:187;;;:::o;13797:366::-;13917:24;13957:37;13997:13;:26;14011:11;13997:26;;;;;;;;;;;;;;;;;13957:66;;14052:104;14095:9;:29;;14138:8;14052:29;:104::i;:::-;14033:123;;13797:366;;;;;:::o;23440:283::-;23603:30;23613:19;;23603:9;:30::i;:::-;23595:39;;;;;;;;23711:5;23645:13;:26;23659:11;23645:26;;;;;;;;;;;;;;;;;:39;;:47;23685:6;23645:47;;;;;;;;;;;:55;;:63;23701:6;23645:63;;;;;;;;;;;;;;;:71;;;;;;;23440:283;;;;:::o;6547:285::-;6671:19;6714:23;:21;:23::i;:::-;6706:32;;;;;;;;6762:13;:26;6776:11;6762:26;;;;;;;;;;;;;;;;;:39;;:47;6802:6;6762:47;;;;;;;;;;;:55;;:63;6818:6;6762:63;;;;;;;;;;;;;;;;6748:77;;6547:285;;;;;:::o;3314:183::-;3410:17;3455:13;:26;3469:11;3455:26;;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;3443:47;;3314:183;;;:::o;8277:225::-;8372:11;8405:90;8448:12;8474:11;8405:29;:90::i;:::-;8399:96;;8277:225;;;:::o;11234:511::-;11329:26;11357:20;11435:21;11401:23;:21;:23::i;:::-;11393:32;;;;;;;;11459:13;:26;11473:11;11459:26;;;;;;;;;;;;;;;;;:39;;;11435:63;;11533:11;;11516:28;;;:13;:28;;;;;11508:37;;;;;;;;11567:13;:26;11581:11;11567:26;;;;;;;;;;;;;;;;;:43;;:58;11611:13;11567:58;;;;;;;;;;;;;;;;;:76;;11555:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11668:13;:26;11682:11;11668:26;;;;;;;;;;;;;;;;;:43;;:58;11712:13;11668:58;;;;;;;;;;;;;;;;;:70;;;11653:85;;11234:511;;;;:::o;3696:416::-;3801:17;3820:13;3835:12;3863:38;3904:13;:26;3918:11;3904:26;;;;;;;;;;;;;;;;;:37;;3863:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3968:8;:15;3959:6;:24;3951:33;;;;;;;;4006:8;4015:6;4006:16;;;;;;;;;;;;;;;;;;:25;;;3994:37;;4049:8;4058:6;4049:16;;;;;;;;;;;;;;;;;;:19;;;4041:27;;4085:8;4094:6;4085:16;;;;;;;;;;;;;;;;;;:20;;;4078:27;;3696:416;;;;;;:::o;18771:544::-;18873:37;18883:26;;18873:9;:37::i;:::-;18865:46;;;;;;;;18970:7;18922:13;:26;18936:11;18922:26;;;;;;;;;;;;;;;;;:38;;:45;;;:55;;;;;;;;;;;;;;;;;;18991:7;18987:322;;;19014:16;:38;19031:20;;19014:38;;;;;;;;;;;;;;;;;:50;;;;19065:11;19014:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19014:63:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19014:63:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19014:63:60;;;;;;;;;;;;;;;;;19091:16;:42;19108:24;;19091:42;;;;;;;;;;;;;;;;;:49;;;;19141:11;19091:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19091:62:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19091:62:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19091:62:60;;;;;;;;;;;;;;;;;19209:24;;19167:13;:26;19181:11;19167:26;;;;;;;;;;;;;;;;;:39;;:66;;;;;;;18987:322;;;19264:34;19286:11;19264:21;:34::i;:::-;18987:322;18771:544;;:::o;14358:203::-;14459:13;14499;:26;14513:11;14499:26;;;;;;;;;;;;;;;;;:39;;:47;14539:6;14499:47;;;;;;;;;;;:55;;;;;;;;;;;;14488:66;;14358:203;;;;:::o;21192:206::-;21304:23;21314:12;;21304:9;:23::i;:::-;21296:32;;;;;;;;21384:7;21338:13;:26;21352:11;21338:26;;;;;;;;;;;;;;;;;:43;;:53;;;;21192:206;;:::o;24213:413::-;24344:21;24296:37;24306:26;;24296:9;:37::i;:::-;24288:46;;;;;;;;24368:13;:26;24382:11;24368:26;;;;;;;;;;;;;;;;;:39;;;24344:63;;24417:16;:31;24434:13;24417:31;;;;;;;;;;;;;;;;;:43;;;;24461:11;24417:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24417:56:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24417:56:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24417:56:60;;;;;;;;;;;;;;;;;24483:16;:41;24500:23;;24483:41;;;;;;;;;;;;;;;;;:48;;;;24532:11;24483:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;24483:61:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;24483:61:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;24483:61:60;;;;;;;;;;;;;;;;;24596:23;;24554:13;:26;24568:11;24554:26;;;;;;;;;;;;;;;;;:39;;:65;;;;;;;24213:413;;:::o;15853:816::-;16061:23;16071:12;;16061:9;:23::i;:::-;16053:32;;;;;;;;16149:11;;16115:45;;;:13;:19;16129:4;16115:19;;;;;;;;;;;;;;;;;:30;;;:45;;;;16114:82;;;;;16184:11;;16176:19;;;:4;:19;;;;;16114:82;16095:111;;;;;;;;16217:12;:19;;;;16237:4;16217:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16217:25:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16217:25:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16217:25:60;;;;;;;;;;;;;;;;;16252:16;:44;16269:26;;16252:44;;;;;;;;;;;;;;;;;:51;;;;16304:4;16252:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16252:57:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16252:57:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16252:57:60;;;;;;;;;;;;;;;;;16352:4;16319:13;:19;16333:4;16319:19;;;;;;;;;;;;;;;;;:30;;:37;;;;;;;16397:9;16366:13;:19;16380:4;16366:19;;;;;;;;;;;;;;;;;:28;;;:40;;;;;;;;;;;;;;;;;;16451:26;;16416:13;:19;16430:4;16416:19;;;;;;;;;;;;;;;;;:32;;:61;;;;;;;16521:3;16487:13;:19;16501:4;16487:19;;;;;;;;;;;;;;;;;:31;;:37;;;;16564:10;16534:13;:19;16548:4;16534:19;;;;;;;;;;;;;;;;;:27;;;:40;;;;;;;;;;;;;;;;;;16584:13;:19;16598:4;16584:19;;;;;;;;;;;;;;;;;:38;;;;16623:4;16629:18;;16649:12;16584:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16584:78:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16584:78:60;;;;15853:816;;;;;;:::o;5421:301::-;5551:12;5565:16;5605:23;:21;:23::i;:::-;5597:32;;;;;;;;5646:13;:26;5660:11;5646:26;;;;;;;;;;;;;;;;;:39;;:47;5686:6;5646:47;;;;;;;;;;;:58;;;;5705:9;;5646:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5646:69:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5646:69:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5646:69:60;;;;;;;;;;;;;;;;;;;;;;;;;5639:76;;;;5421:301;;;;;;;:::o;23729:316::-;23914:30;23924:19;;23914:9;:30::i;:::-;23906:39;;;;;;;;23956:13;:26;23970:11;23956:26;;;;;;;;;;;;;;;;;:39;;:47;23996:6;23956:47;;;;;;;;;;;:58;;;;24015:6;24023:5;24030:7;23956:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23956:82:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23956:82:60;;;;23729:316;;;;;:::o;9547:298::-;9663:11;9698:23;:21;:23::i;:::-;9690:32;;;;;;;;9738:100;9777:16;:26;9794:8;9777:26;;;;;;;;;;;;;;;;;9817:11;9738:25;:100::i;:::-;9732:106;;9547:298;;;;:::o;18285:480::-;18450:37;18415:23;18425:12;;18415:9;:23::i;:::-;18407:32;;;;;;;;18490:13;:26;18504:11;18490:26;;;;;;;;;;;;;;;;;18450:66;;18547:9;18526;:18;;;:30;;;;;;;;;;;;;;;;;;18591:20;;18566:9;:22;;:45;;;;;;;18621:16;:44;18638:26;;18621:44;;;;;;;;;;;;;;;;;:56;;;;18678:11;18621:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18621:69:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18621:69:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18621:69:60;;;;;;;;;;;;;;;;;18700:16;:38;18717:20;;18700:38;;;;;;;;;;;;;;;;;:45;;;;18746:11;18700:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18700:58:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18700:58:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18700:58:60;;;;;;;;;;;;;;;;;18285:480;;;:::o;4869:259::-;4983:14;5021:23;:21;:23::i;:::-;5013:32;;;;;;;;5064:13;:26;5078:11;5064:26;;;;;;;;;;;;;;;;;:39;;:47;5104:6;5064:47;;;;;;;;;;;:57;;;5055:66;;4869:259;;;;:::o;5134:281::-;5253:12;5267:16;5307:23;:21;:23::i;:::-;5299:32;;;;;;;;5348:13;:26;5362:11;5348:26;;;;;;;;;;;;;;;;;:38;;:49;;;;5398:9;;5348:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5348:60:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5348:60:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5348:60:60;;;;;;;;;;;;;;;;;;;;;;;;;5341:67;;;;5134:281;;;;;;:::o;21404:859::-;21691:37;;:::i;:::-;21573:23;21583:12;;21573:9;:23::i;:::-;21565:32;;;;;;;;21658:21;;21615:64;;;:13;:26;21629:11;21615:26;;;;;;;;;;;;;;;;;:39;;;:64;;;;;21607:73;;;;;;;;21753:5;21738:9;:12;;:20;;;;;21784:4;21768:9;:13;;:20;;;;;;;;;;;;;21819:7;21798:9;:18;;:28;;;;;21836:13;:26;21850:11;21836:26;;;;;;;;;;;;;;;;;:37;;21879:9;21836:53;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;21836:53:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21915:16;;21904:7;:27;21900:357;;;21992:4;21945:13;:26;21959:11;21945:26;;;;;;;;;;;;;;;;;:44;;;:51;;;;;;;;;;;;;;;;;;21900:357;;;22028:18;;22017:7;:29;22013:244;;;22107:5;22060:13;:26;22074:11;22060:26;;;;;;;;;;;;;;;;;:44;;;:52;;;;;;;;;;;;;;;;;;22013:244;;;22196:4;22149:13;:26;22163:11;22149:26;;;;;;;;;;;;;;;;;:44;;;:51;;;;;;;;;;;;;;;;;;22212:34;22234:11;22212:21;:34::i;:::-;22013:244;21900:357;21404:859;;;;;:::o;17113:496::-;17287:21;17252:23;17262:12;;17252:9;:23::i;:::-;17244:32;;;;;;;;17311:13;:26;17325:11;17311:26;;;;;;;;;;;;;;;;;:39;;;17287:63;;17385:11;;17368:28;;;:13;:28;;;;;17360:37;;;;;;;;17486:21;;17407:13;:26;17421:11;17407:26;;;;;;;;;;;;;;;;;:43;;:58;17451:13;17407:58;;;;;;;;;;;;;;;;;:76;;:100;;;;;;;:::i;:::-;;17590:12;17517:13;:26;17531:11;17517:26;;;;;;;;;;;;;;;;;:43;;:58;17561:13;17517:58;;;;;;;;;;;;;;;;;:70;;:85;;;;17113:496;;;;;:::o;20915:271::-;21027:88;;;;;;;;;;21043:26;;21027:88;;;;;;;;;;21071:28;;21027:88;;;;;;;;;;21101:12;;21027:88;;;;;;;;;:14;:88::i;:::-;21019:97;;;;;;;;21172:7;21126:13;:26;21140:11;21126:26;;;;;;;;;;;;;;;;;:43;;:53;;;;20915:271;;:::o;7240:153::-;7313:11;7346:40;7373:12;7346:26;:40::i;:::-;7340:46;;7240:153;:::o;2240:1068::-;2341:12;2367:17;2398;2429:14;2457:20;2491:18;2523:25;2562:21;2597;2632;2720:37;2686:23;:21;:23::i;:::-;2678:32;;;;;;;;2760:13;:26;2774:11;2760:26;;;;;;;;;;;;;;;;;2720:66;;2803:9;:20;;;2796:27;;2845:9;:18;;;;;;;;;;;;2833:30;;2885:9;:18;;;;;;;;;;;;2873:30;;2922:9;:22;;;2913:31;;2969:9;:21;;;2954:36;;3013:52;3035:9;:29;;3013:21;:52::i;:::-;3000:65;;3095:56;3121:9;:29;;3095:25;:56::i;:::-;3075:76;;3177:9;:22;;;3161:38;;3228:9;:27;;;;;;;;;;;;3209:46;;3284:9;:17;;;;;;;;;;;;3265:36;;2240:1068;;;;;;;;;;;;:::o;344:31:67:-;;;;;;;;;;;;;:::o;15159:333:60:-;15251:19;15286:21;15310:13;:26;15324:11;15310:26;;;;;;;;;;;;;;;;;:39;;;15286:63;;15384:11;;15367:28;;;:13;:28;;;;;15359:37;;;;;;;;15418:13;:26;15432:11;15418:26;;;;;;;;;;;;;;;;;:43;;:58;15462:13;15418:58;;;;;;;;;;;;;;;;;:67;;15406:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15159:333;;;;:::o;6069:259::-;6174:10;6186:15;6225:23;:21;:23::i;:::-;6217:32;;;;;;;;6266:13;:26;6280:11;6266:26;;;;;;;;;;;;;;;;;:38;;:47;;;;6314:6;6266:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6266:55:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6266:55:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6266:55:60;;;;;;;;;;;;;;;;;;;;;;;;;6259:62;;;;6069:259;;;;;:::o;19909:229::-;20040:23;20050:12;;20040:9;:23::i;:::-;20032:32;;;;;;;;20126:5;20075:13;:26;20089:11;20075:26;;;;;;;;;;;;;;;;;:38;;:48;;:56;;;;19909:229;;:::o;12199:282::-;12298:16;12330:37;12370:13;:26;12384:11;12370:26;;;;;;;;;;;;;;;;;12330:66;;12417:57;12444:9;:29;;12417:26;:57::i;:::-;12406:68;;12199:282;;;;:::o;8692:232::-;8788:11;8823:23;:21;:23::i;:::-;8815:32;;;;;;;;8863:54;8890:16;:26;8907:8;8890:26;;;;;;;;;;;;;;;;;8863;:54::i;:::-;8857:60;;8692:232;;;:::o;5728:335::-;5875:24;5901:15;5940:23;:21;:23::i;:::-;5932:32;;;;;;;;5981:13;:26;5995:11;5981:26;;;;;;;;;;;;;;;;;:39;;:47;6021:6;5981:47;;;;;;;;;;;:57;;;;6039:9;;6050:5;5981:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5981:75:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5981:75:60;;;;;;39:16:-1;36:1;17:17;2:54;5981:75:60;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5981:75:60;;;;;;20:11:-1;15:3;12:20;9:2;;;45:1;42;35:12;9:2;73:11;68:3;64:21;57:28;;126:4;121:3;117:14;163:9;145:16;142:31;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;5981:75:60;;;;;;;;;;;;;;;;;5974:82;;;;5728:335;;;;;;;;:::o;14810:195::-;14914:15;14955:13;:26;14969:11;14955:26;;;;;;;;;;;;;;;;;:43;;;14945:53;;14810:195;;;:::o;17676:394::-;17810:21;17775:23;17785:12;;17775:9;:23::i;:::-;17767:32;;;;;;;;17834:13;:26;17848:11;17834:26;;;;;;;;;;;;;;;;;:39;;;17810:63;;17908:11;;17891:28;;;:13;:28;;;;;17883:37;;;;;;;;17982:13;:26;17996:11;17982:26;;;;;;;;;;;;;;;;;:43;;:58;18026:13;17982:58;;;;;;;;;;;;;;;;;:67;;18055:7;17982:81;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;17982:81:60;;;;;;;;;;;;;;;;;;;;;;;;;;;17676:394;;;:::o;7515:151::-;7587:11;7620:39;7646:12;7620:25;:39::i;:::-;7614:45;;7515:151;:::o;16675:325::-;16867:23;16877:12;;16867:9;:23::i;:::-;16859:32;;;;;;;;16902:13;:26;16916:11;16902:26;;;;;;;;;;;;;;;;;:45;;;;16948:7;16957:21;;16980:12;16902:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16902:91:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16902:91:60;;;;16675:325;;;;;:::o;610:160:67:-;671:12;732:8;;;;;;;;;;;715:39;;;755:9;715:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:50:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;715:50:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;715:50:67;;;;;;;;;;;;;;;;701:64;;:10;:64;;;691:74;;610:160;;;:::o;22269:361:60:-;22352:21;22376:13;:26;22390:11;22376:26;;;;;;;;;;;;;;;;;:39;;;22352:63;;22425:16;:31;22442:13;22425:31;;;;;;;;;;;;;;;;;:43;;;;22469:11;22425:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22425:56:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22425:56:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22425:56:60;;;;;;;;;;;;;;;;;22491:16;:39;22508:21;;22491:39;;;;;;;;;;;;;;;;;:46;;;;22538:11;22491:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;22491:59:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;22491:59:60;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22491:59:60;;;;;;;;;;;;;;;;;22602:21;;22560:13;:26;22574:11;22560:26;;;;;;;;;;;;;;;;;:39;;:63;;;;;;;22269:361;;:::o;707:316:6:-;787:27;956:9;942:23;;:10;:23;;;941:75;;;;970:24;:22;:24::i;:::-;:34;;;1005:10;970:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;970:46:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;970:46:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;970:46:6;;;;;;;;;;;;;;;;941:75;916:100;;707:316;:::o;766:185:77:-;899:13;930:5;:14;;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;930:16:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;930:16:77;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;930:16:77;;;;;;;;;;;;;;;;922:24;;766:185;;;:::o;1902:230::-;2062:13;2093:5;:19;;;;2113:13;2093:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:34:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2093:34:77;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2093:34:77;;;;;;;;;;;;;;;;2085:42;;1902:230;;;;:::o;1311:222::-;1467:13;1498:5;:15;;;;1514:13;1498:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1498:30:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1498:30:77;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1498:30:77;;;;;;;;;;;;;;;;1490:38;;1311:222;;;;:::o;881:350:67:-;951:12;971:10;1012:9;984:17;971:30;;1024:1;1012:13;;1007:220;1031:2;1027:1;:6;1007:220;;;1077:3;1069:12;;1052:29;;;:10;1063:1;1052:13;;;;;;;;;;;;;:29;;;;1048:43;;;1083:8;;1048:43;1134:8;;;;;;;;;;;1117:39;;;1157:10;1168:1;1157:13;;;;;;;;;;;;;1117:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:54:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1117:54:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1117:54:67;;;;;;;;;;;;;;;;1103:68;;:10;:68;;;1099:122;;;1193:4;1183:14;;1207:5;;1099:122;1007:220;1035:3;;;;;;;1007:220;;;881:350;;;;;:::o;422:188:77:-;556:13;587:5;:16;;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;587:18:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;587:18:77;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;587:18:77;;;;;;;;;;;;;;;;579:26;;422:188;;;:::o;2310:180::-;2439:14;2472:5;:11;;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2472:13:77;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2472:13:77;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2472:13:77;;;;;;;;;;;;;;;;2463:22;;2310:180;;;:::o;240:219:6:-;321:32;404:47;417:33;;404:12;:47::i;:::-;369:83;;240:219;:::o;299:24567:60:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/solidity-collections/contracts/abstract/BytesIteratorStorage.sol\";\nimport \"@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol\";\nimport \"../common/DaoWhitelistingCommon.sol\";\nimport \"../lib/DaoStructs.sol\";\nimport \"./DaoWhitelistingStorage.sol\";\n\ncontract DaoStorage is DaoWhitelistingCommon, BytesIteratorStorage {\n    using DoublyLinkedList for DoublyLinkedList.Bytes;\n    using DaoStructs for DaoStructs.Voting;\n    using DaoStructs for DaoStructs.Proposal;\n    using DaoStructs for DaoStructs.ProposalVersion;\n\n    // List of all the proposals ever created in DigixDAO\n    DoublyLinkedList.Bytes allProposals;\n\n    // mapping of Proposal struct by its ID\n    // ID is also the IPFS doc hash of the first ever version of this proposal\n    mapping (bytes32 => DaoStructs.Proposal) proposalsById;\n\n    // mapping from state of a proposal to list of all proposals in that state\n    // proposals are added/removed from the state's list as their states change\n    // eg. when proposal is endorsed, when proposal is funded, etc\n    mapping (bytes32 => DoublyLinkedList.Bytes) proposalsByState;\n\n    constructor(address _resolver) public {\n        require(init(CONTRACT_STORAGE_DAO, _resolver));\n    }\n\n    /////////////////////////////// READ FUNCTIONS //////////////////////////////\n\n    /// @notice read all information and details of proposal\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc Proposal ID, i.e. hash of IPFS doc\n    /// return {\n    ///   \"_doc\": \"Original IPFS doc of proposal, also ID of proposal\",\n    ///   \"_proposer\": \"Address of the proposer\",\n    ///   \"_endorser\": \"Address of the moderator that endorsed the proposal\",\n    ///   \"_state\": \"Current state of the proposal\",\n    ///   \"_timeCreated\": \"UTC timestamp at which proposal was created\",\n    ///   \"_nVersions\": \"Number of versions of the proposal\",\n    ///   \"_latestVersionDoc\": \"IPFS doc hash of the latest version of this proposal\",\n    ///   \"_finalVersion\": \"If finalized, the version of the final proposal\",\n    ///   \"_pausedOrStopped\": \"If the proposal is paused/stopped at the moment\",\n    ///   \"_isDigixProposal\": \"If the proposal has been created by founder or not\"\n    /// }\n    function readProposal(bytes32 _proposalId)\n        public\n        view\n        returns (\n            bytes32 _doc,\n            address _proposer,\n            address _endorser,\n            bytes32 _state,\n            uint256 _timeCreated,\n            uint256 _nVersions,\n            bytes32 _latestVersionDoc,\n            bytes32 _finalVersion,\n            bool _pausedOrStopped,\n            bool _isDigixProposal\n        )\n    {\n        require(senderIsAllowedToRead());\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _doc = _proposal.proposalId;\n        _proposer = _proposal.proposer;\n        _endorser = _proposal.endorser;\n        _state = _proposal.currentState;\n        _timeCreated = _proposal.timeCreated;\n        _nVersions = read_total_bytesarray(_proposal.proposalVersionDocs);\n        _latestVersionDoc = read_last_from_bytesarray(_proposal.proposalVersionDocs);\n        _finalVersion = _proposal.finalVersion;\n        _pausedOrStopped = _proposal.isPausedOrStopped;\n        _isDigixProposal = _proposal.isDigix;\n    }\n\n    function readProposalProposer(bytes32 _proposalId)\n        public\n        view\n        returns (address _proposer)\n    {\n        _proposer = proposalsById[_proposalId].proposer;\n    }\n\n    function readTotalPrlActions(bytes32 _proposalId)\n        public\n        view\n        returns (uint256 _length)\n    {\n        _length = proposalsById[_proposalId].prlActions.length;\n    }\n\n    function readPrlAction(bytes32 _proposalId, uint256 _index)\n        public\n        view\n        returns (uint256 _actionId, uint256 _time, bytes32 _doc)\n    {\n        DaoStructs.PrlAction[] memory _actions = proposalsById[_proposalId].prlActions;\n        require(_index < _actions.length);\n        _actionId = _actions[_index].actionId;\n        _time = _actions[_index].at;\n        _doc = _actions[_index].doc;\n    }\n\n    function readProposalDraftVotingResult(bytes32 _proposalId)\n        public\n        view\n        returns (bool _result)\n    {\n        require(senderIsAllowedToRead());\n        _result = proposalsById[_proposalId].draftVoting.passed;\n    }\n\n    function readProposalVotingResult(bytes32 _proposalId, uint256 _index)\n        public\n        view\n        returns (bool _result)\n    {\n        require(senderIsAllowedToRead());\n        _result = proposalsById[_proposalId].votingRounds[_index].passed;\n    }\n\n    function readProposalDraftVotingTime(bytes32 _proposalId)\n        public\n        view\n        returns (uint256 _start)\n    {\n        require(senderIsAllowedToRead());\n        _start = proposalsById[_proposalId].draftVoting.startTime;\n    }\n\n    function readProposalVotingTime(bytes32 _proposalId, uint256 _index)\n        public\n        view\n        returns (uint256 _start)\n    {\n        require(senderIsAllowedToRead());\n        _start = proposalsById[_proposalId].votingRounds[_index].startTime;\n    }\n\n    function readDraftVotingCount(bytes32 _proposalId, address[] _allUsers)\n        external\n        view\n        returns (uint256 _for, uint256 _against)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].draftVoting.countVotes(_allUsers);\n    }\n\n    function readVotingCount(bytes32 _proposalId, uint256 _index, address[] _allUsers)\n        external\n        view\n        returns (uint256 _for, uint256 _against)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].votingRounds[_index].countVotes(_allUsers);\n    }\n\n    function readVotingRoundVotes(bytes32 _proposalId, uint256 _index, address[] _allUsers, bool _vote)\n        external\n        view\n        returns (address[] memory _voters, uint256 _length)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].votingRounds[_index].listVotes(_allUsers, _vote);\n    }\n\n    function readDraftVote(bytes32 _proposalId, address _voter)\n        public\n        view\n        returns (bool _vote, uint256 _weight)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].draftVoting.readVote(_voter);\n    }\n\n    /// @notice returns the latest committed vote by a voter on a proposal\n    /// @param _proposalId proposal ID\n    /// @param _voter address of the voter\n    /// @return {\n    ///   \"_commitHash\": \"\"\n    /// }\n    function readComittedVote(bytes32 _proposalId, uint256 _index, address _voter)\n        public\n        view\n        returns (bytes32 _commitHash)\n    {\n        require(senderIsAllowedToRead());\n        _commitHash = proposalsById[_proposalId].votingRounds[_index].commits[_voter];\n    }\n\n    function readVote(bytes32 _proposalId, uint256 _index, address _voter)\n        public\n        view\n        returns (bool _vote, uint256 _weight)\n    {\n        require(senderIsAllowedToRead());\n        return proposalsById[_proposalId].votingRounds[_index].readVote(_voter);\n    }\n\n    /// @notice get all information and details of the first proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getFirstProposal()\n        public\n        view\n        returns (bytes32 _id)\n    {\n        _id = read_first_from_bytesarray(allProposals);\n    }\n\n    /// @notice get all information and details of the last proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getLastProposal()\n        public\n        view\n        returns (bytes32 _id)\n    {\n        _id = read_last_from_bytesarray(allProposals);\n    }\n\n    /// @notice get all information and details of proposal next to _proposalId\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getNextProposal(bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        _id = read_next_from_bytesarray(\n            allProposals,\n            _proposalId\n        );\n    }\n\n    /// @notice get all information and details of proposal previous to _proposalId\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getPreviousProposal(bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        _id = read_previous_from_bytesarray(\n            allProposals,\n            _proposalId\n        );\n    }\n\n    /// @notice get all information and details of the first proposal in state _stateId\n    /// @param _stateId State ID of the proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getFirstProposalInState(bytes32 _stateId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        require(senderIsAllowedToRead());\n        _id = read_first_from_bytesarray(proposalsByState[_stateId]);\n    }\n\n    /// @notice get all information and details of the last proposal in state _stateId\n    /// @param _stateId State ID of the proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getLastProposalInState(bytes32 _stateId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        require(senderIsAllowedToRead());\n        _id = read_last_from_bytesarray(proposalsByState[_stateId]);\n    }\n\n    /// @notice get all information and details of the next proposal to _proposalId in state _stateId\n    /// @param _stateId State ID of the proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getNextProposalInState(bytes32 _stateId, bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        require(senderIsAllowedToRead());\n        _id = read_next_from_bytesarray(\n            proposalsByState[_stateId],\n            _proposalId\n        );\n    }\n\n    /// @notice get all information and details of the previous proposal to _proposalId in state _stateId\n    /// @param _stateId State ID of the proposal\n    /// return {\n    ///   \"_id\": \"\"\n    /// }\n    function getPreviousProposalInState(bytes32 _stateId, bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _id)\n    {\n        require(senderIsAllowedToRead());\n        _id = read_previous_from_bytesarray(\n            proposalsByState[_stateId],\n            _proposalId\n        );\n    }\n\n    /// @notice read proposal version details for a specific version\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// @param _version Version of proposal, i.e. hash of IPFS doc for specific version\n    /// return {\n    ///   \"_doc\": \"\",\n    ///   \"_created\": \"\",\n    ///   \"_milestoneFundings\": \"\"\n    /// }\n    function readProposalVersion(bytes32 _proposalId, bytes32 _version)\n        public\n        view\n        returns (\n            bytes32 _doc,\n            uint256 _created,\n            uint256[] _milestoneFundings,\n            uint256 _finalReward\n        )\n    {\n        return proposalsById[_proposalId].proposalVersions[_version].readVersion();\n    }\n\n    /**\n    @notice Read the fundings of a finalized proposal\n    @return {\n        \"_fundings\": \"fundings for the milestones\",\n        \"_finalReward\": \"the final reward\"\n    }\n    */\n    function readProposalFunding(bytes32 _proposalId)\n        public\n        view\n        returns (uint256[] memory _fundings, uint256 _finalReward)\n    {\n        require(senderIsAllowedToRead());\n        bytes32 _finalVersion = proposalsById[_proposalId].finalVersion;\n        require(_finalVersion != EMPTY_BYTES);\n        _fundings = proposalsById[_proposalId].proposalVersions[_finalVersion].milestoneFundings;\n        _finalReward = proposalsById[_proposalId].proposalVersions[_finalVersion].finalReward;\n    }\n\n    function readProposalMilestone(bytes32 _proposalId, uint256 _index)\n        public\n        view\n        returns (uint256 _funding)\n    {\n        require(senderIsAllowedToRead());\n        _funding = proposalsById[_proposalId].readProposalMilestone(_index);\n    }\n\n    /// @notice get proposal version details for the first version\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// return {\n    ///   \"_version\": \"\"\n    /// }\n    function getFirstProposalVersion(bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _version)\n    {\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _version = read_first_from_bytesarray(_proposal.proposalVersionDocs);\n    }\n\n    /// @notice get proposal version details for the last version\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// return {\n    ///   \"_version\": \"\"\n    /// }\n    function getLastProposalVersion(bytes32 _proposalId)\n        public\n        view\n        returns (bytes32 _version)\n    {\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _version = read_last_from_bytesarray(_proposal.proposalVersionDocs);\n    }\n\n    /// @notice get proposal version details for the next version to _version\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// @param _version Version of proposal\n    /// return {\n    ///   \"_nextVersion\": \"\"\n    /// }\n    function getNextProposalVersion(bytes32 _proposalId, bytes32 _version)\n        public\n        view\n        returns (bytes32 _nextVersion)\n    {\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _nextVersion = read_next_from_bytesarray(\n            _proposal.proposalVersionDocs,\n            _version\n        );\n    }\n\n    /// @notice get proposal version details for the previous version to _version\n    /// @param _proposalId Proposal ID, i.e. hash of IPFS doc\n    /// @param _version Version of proposal\n    /// return {\n    ///   \"_previousVersion\": \"\"\n    /// }\n    function getPreviousProposalVersion(bytes32 _proposalId, bytes32 _version)\n        public\n        view\n        returns (bytes32 _previousVersion)\n    {\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _previousVersion = read_previous_from_bytesarray(\n            _proposal.proposalVersionDocs,\n            _version\n        );\n    }\n\n    function isDraftClaimed(bytes32 _proposalId)\n        public\n        view\n        returns (bool _claimed)\n    {\n        _claimed = proposalsById[_proposalId].draftVoting.claimed;\n    }\n\n    function isClaimed(bytes32 _proposalId, uint256 _index)\n        public\n        view\n        returns (bool _claimed)\n    {\n        _claimed = proposalsById[_proposalId].votingRounds[_index].claimed;\n    }\n\n    function readProposalCollateralStatus(bytes32 _proposalId)\n        public\n        view\n        returns (uint256 _status)\n    {\n        require(senderIsAllowedToRead());\n        _status = proposalsById[_proposalId].collateralStatus;\n    }\n\n    function readProposalCollateralAmount(bytes32 _proposalId)\n        public\n        view\n        returns (uint256 _amount)\n    {\n        _amount = proposalsById[_proposalId].collateralAmount;\n    }\n\n    /// @notice Read the additional docs that are added after the proposal is finalized\n    /// @dev Will throw if the propsal is not finalized yet\n    function readProposalDocs(bytes32 _proposalId)\n        public\n        view\n        returns (bytes32[] _moreDocs)\n    {\n        bytes32 _finalVersion = proposalsById[_proposalId].finalVersion;\n        require(_finalVersion != EMPTY_BYTES);\n        _moreDocs = proposalsById[_proposalId].proposalVersions[_finalVersion].moreDocs;\n    }\n\n    function readIfMilestoneFunded(bytes32 _proposalId, uint256 _milestoneId)\n        public\n        view\n        returns (bool _funded)\n    {\n        require(senderIsAllowedToRead());\n        _funded = proposalsById[_proposalId].votingRounds[_milestoneId].funded;\n    }\n\n    ////////////////////////////// WRITE FUNCTIONS //////////////////////////////\n\n    function addProposal(\n        bytes32 _doc,\n        address _proposer,\n        uint256[] _milestoneFundings,\n        uint256 _finalReward,\n        bool _isFounder\n    )\n        external\n    {\n        require(sender_is(CONTRACT_DAO));\n        require(\n          (proposalsById[_doc].proposalId == EMPTY_BYTES) &&\n          (_doc != EMPTY_BYTES)\n        );\n\n        allProposals.append(_doc);\n        proposalsByState[PROPOSAL_STATE_PREPROPOSAL].append(_doc);\n        proposalsById[_doc].proposalId = _doc;\n        proposalsById[_doc].proposer = _proposer;\n        proposalsById[_doc].currentState = PROPOSAL_STATE_PREPROPOSAL;\n        proposalsById[_doc].timeCreated = now;\n        proposalsById[_doc].isDigix = _isFounder;\n        proposalsById[_doc].addProposalVersion(_doc, _milestoneFundings, _finalReward);\n    }\n\n    function editProposal(\n        bytes32 _proposalId,\n        bytes32 _newDoc,\n        uint256[] _newMilestoneFundings,\n        uint256 _finalReward\n    )\n        external\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        proposalsById[_proposalId].addProposalVersion(_newDoc, _newMilestoneFundings, _finalReward);\n    }\n\n    /// @notice change fundings of a proposal\n    /// @dev Will throw if the proposal is not finalized yet\n    function changeFundings(bytes32 _proposalId, uint256[] _newMilestoneFundings, uint256 _finalReward)\n        external\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        bytes32 _finalVersion = proposalsById[_proposalId].finalVersion;\n        require(_finalVersion != EMPTY_BYTES);\n        proposalsById[_proposalId].proposalVersions[_finalVersion].milestoneFundings = _newMilestoneFundings;\n        proposalsById[_proposalId].proposalVersions[_finalVersion].finalReward = _finalReward;\n    }\n\n    /// @dev Will throw if the proposal is not finalized yet\n    function addProposalDoc(bytes32 _proposalId, bytes32 _newDoc)\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        bytes32 _finalVersion = proposalsById[_proposalId].finalVersion;\n        require(_finalVersion != EMPTY_BYTES); //already checked in interactive layer, but why not\n        proposalsById[_proposalId].proposalVersions[_finalVersion].moreDocs.push(_newDoc);\n    }\n\n    function finalizeProposal(bytes32 _proposalId)\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        proposalsById[_proposalId].finalVersion = getLastProposalVersion(_proposalId);\n    }\n\n    function updateProposalEndorse(\n        bytes32 _proposalId,\n        address _endorser\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        _proposal.endorser = _endorser;\n        _proposal.currentState = PROPOSAL_STATE_DRAFT;\n        proposalsByState[PROPOSAL_STATE_PREPROPOSAL].remove_item(_proposalId);\n        proposalsByState[PROPOSAL_STATE_DRAFT].append(_proposalId);\n    }\n\n    function setProposalDraftPass(bytes32 _proposalId, bool _result)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING_CLAIMS));\n\n        proposalsById[_proposalId].draftVoting.passed = _result;\n        if (_result) {\n            proposalsByState[PROPOSAL_STATE_DRAFT].remove_item(_proposalId);\n            proposalsByState[PROPOSAL_STATE_MODERATED].append(_proposalId);\n            proposalsById[_proposalId].currentState = PROPOSAL_STATE_MODERATED;\n        } else {\n            closeProposalInternal(_proposalId);\n        }\n    }\n\n    function setProposalPass(bytes32 _proposalId, uint256 _index, bool _result)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING_CLAIMS));\n\n        if (!_result) {\n            closeProposalInternal(_proposalId);\n        } else if (_index == 0) {\n            proposalsByState[PROPOSAL_STATE_MODERATED].remove_item(_proposalId);\n            proposalsByState[PROPOSAL_STATE_ONGOING].append(_proposalId);\n            proposalsById[_proposalId].currentState = PROPOSAL_STATE_ONGOING;\n        }\n        proposalsById[_proposalId].votingRounds[_index].passed = _result;\n    }\n\n    function setProposalDraftVotingTime(\n        bytes32 _proposalId,\n        uint256 _time\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n\n        proposalsById[_proposalId].draftVoting.startTime = _time;\n    }\n\n    function setProposalVotingTime(\n        bytes32 _proposalId,\n        uint256 _index,\n        uint256 _time\n    )\n        public\n    {\n        require(sender_is_from([CONTRACT_DAO, CONTRACT_DAO_VOTING_CLAIMS, EMPTY_BYTES]));\n\n        proposalsById[_proposalId].votingRounds[_index].startTime = _time;\n    }\n\n    function setDraftVotingClaim(bytes32 _proposalId, bool _claimed)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING_CLAIMS));\n        proposalsById[_proposalId].draftVoting.claimed = _claimed;\n    }\n\n    function setVotingClaim(bytes32 _proposalId, uint256 _index, bool _claimed)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING_CLAIMS));\n        proposalsById[_proposalId].votingRounds[_index].claimed = _claimed;\n    }\n\n    function setProposalCollateralStatus(bytes32 _proposalId, uint256 _status)\n        public\n    {\n        require(sender_is_from([CONTRACT_DAO_VOTING_CLAIMS, CONTRACT_DAO_FUNDING_MANAGER, CONTRACT_DAO]));\n        proposalsById[_proposalId].collateralStatus = _status;\n    }\n\n    function setProposalCollateralAmount(bytes32 _proposalId, uint256 _amount)\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n        proposalsById[_proposalId].collateralAmount = _amount;\n    }\n\n    function updateProposalPRL(\n        bytes32 _proposalId,\n        uint256 _action,\n        bytes32 _doc,\n        uint256 _time\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n        require(proposalsById[_proposalId].currentState != PROPOSAL_STATE_CLOSED);\n\n        DaoStructs.PrlAction memory prlAction;\n        prlAction.at = _time;\n        prlAction.doc = _doc;\n        prlAction.actionId = _action;\n        proposalsById[_proposalId].prlActions.push(prlAction);\n\n        if (_action == PRL_ACTION_PAUSE) {\n          proposalsById[_proposalId].isPausedOrStopped = true;\n        } else if (_action == PRL_ACTION_UNPAUSE) {\n          proposalsById[_proposalId].isPausedOrStopped = false;\n        } else { // STOP\n          proposalsById[_proposalId].isPausedOrStopped = true;\n          closeProposalInternal(_proposalId);\n        }\n    }\n\n    function closeProposalInternal(bytes32 _proposalId)\n        internal\n    {\n        bytes32 _currentState = proposalsById[_proposalId].currentState;\n        proposalsByState[_currentState].remove_item(_proposalId);\n        proposalsByState[PROPOSAL_STATE_CLOSED].append(_proposalId);\n        proposalsById[_proposalId].currentState = PROPOSAL_STATE_CLOSED;\n    }\n\n    function addDraftVote(\n        bytes32 _proposalId,\n        address _voter,\n        bool _vote,\n        uint256 _weight\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING));\n\n        DaoStructs.Proposal storage _proposal = proposalsById[_proposalId];\n        if (_vote) {\n            _proposal.draftVoting.yesVotes[_voter] = _weight;\n            if (_proposal.draftVoting.noVotes[_voter] > 0) { // minimize number of writes to storage, since EIP-1087 is not implemented yet\n                _proposal.draftVoting.noVotes[_voter] = 0;\n            }\n        } else {\n            _proposal.draftVoting.noVotes[_voter] = _weight;\n            if (_proposal.draftVoting.yesVotes[_voter] > 0) {\n                _proposal.draftVoting.yesVotes[_voter] = 0;\n            }\n        }\n    }\n\n    function commitVote(\n        bytes32 _proposalId,\n        bytes32 _hash,\n        address _voter,\n        uint256 _index\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING));\n\n        proposalsById[_proposalId].votingRounds[_index].commits[_voter] = _hash;\n    }\n\n    function revealVote(\n        bytes32 _proposalId,\n        address _voter,\n        bool _vote,\n        uint256 _weight,\n        uint256 _index\n    )\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING));\n\n        proposalsById[_proposalId].votingRounds[_index].revealVote(_voter, _vote, _weight);\n    }\n\n    function closeProposal(bytes32 _proposalId)\n        public\n    {\n        require(sender_is(CONTRACT_DAO));\n        closeProposalInternal(_proposalId);\n    }\n\n    function archiveProposal(bytes32 _proposalId)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_VOTING_CLAIMS));\n        bytes32 _currentState = proposalsById[_proposalId].currentState;\n        proposalsByState[_currentState].remove_item(_proposalId);\n        proposalsByState[PROPOSAL_STATE_ARCHIVED].append(_proposalId);\n        proposalsById[_proposalId].currentState = PROPOSAL_STATE_ARCHIVED;\n    }\n\n    function setMilestoneFunded(bytes32 _proposalId, uint256 _milestoneId)\n        public\n    {\n        require(sender_is(CONTRACT_DAO_FUNDING_MANAGER));\n        proposalsById[_proposalId].votingRounds[_milestoneId].funded = true;\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
    "exportedSymbols": {
      "DaoStorage": [
        17874
      ]
    },
    "id": 17875,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16028,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:60"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorStorage.sol",
        "file": "@digix/solidity-collections/contracts/abstract/BytesIteratorStorage.sol",
        "id": 16029,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 22050,
        "src": "26:81:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 16030,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 25117,
        "src": "108:72:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "../common/DaoWhitelistingCommon.sol",
        "id": 16031,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 1869,
        "src": "181:45:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 16032,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 8452,
        "src": "227:31:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoWhitelistingStorage.sol",
        "file": "./DaoWhitelistingStorage.sol",
        "id": 16033,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 18011,
        "src": "259:38:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 16034,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "322:21:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 16035,
            "nodeType": "InheritanceSpecifier",
            "src": "322:21:60"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 16036,
              "name": "BytesIteratorStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22049,
              "src": "345:20:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesIteratorStorage_$22049",
                "typeString": "contract BytesIteratorStorage"
              }
            },
            "id": 16037,
            "nodeType": "InheritanceSpecifier",
            "src": "345:20:60"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628,
          22049
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 17874,
        "linearizedBaseContracts": [
          17874,
          22049,
          1868,
          1629,
          18628
        ],
        "name": "DaoStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 16040,
            "libraryName": {
              "contractScope": null,
              "id": 16038,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "378:16:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "372:50:60",
            "typeName": {
              "contractScope": null,
              "id": 16039,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "399:22:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 16043,
            "libraryName": {
              "contractScope": null,
              "id": 16041,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "433:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "427:39:60",
            "typeName": {
              "contractScope": null,
              "id": 16042,
              "name": "DaoStructs.Voting",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7930,
              "src": "448:17:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                "typeString": "struct DaoStructs.Voting"
              }
            }
          },
          {
            "id": 16046,
            "libraryName": {
              "contractScope": null,
              "id": 16044,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "477:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "471:41:60",
            "typeName": {
              "contractScope": null,
              "id": 16045,
              "name": "DaoStructs.Proposal",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7981,
              "src": "492:19:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                "typeString": "struct DaoStructs.Proposal"
              }
            }
          },
          {
            "id": 16049,
            "libraryName": {
              "contractScope": null,
              "id": 16047,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "523:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "517:48:60",
            "typeName": {
              "contractScope": null,
              "id": 16048,
              "name": "DaoStructs.ProposalVersion",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7945,
              "src": "538:26:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                "typeString": "struct DaoStructs.ProposalVersion"
              }
            }
          },
          {
            "constant": false,
            "id": 16051,
            "name": "allProposals",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "629:35:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Bytes_$22605_storage",
              "typeString": "struct DoublyLinkedList.Bytes"
            },
            "typeName": {
              "contractScope": null,
              "id": 16050,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "629:22:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16055,
            "name": "proposalsById",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "794:54:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal)"
            },
            "typeName": {
              "id": 16054,
              "keyType": {
                "id": 16052,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "803:7:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "794:40:60",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal)"
              },
              "valueType": {
                "contractScope": null,
                "id": 16053,
                "name": "DaoStructs.Proposal",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 7981,
                "src": "814:19:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                  "typeString": "struct DaoStructs.Proposal"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16059,
            "name": "proposalsByState",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "1081:60:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes)"
            },
            "typeName": {
              "id": 16058,
              "keyType": {
                "id": 16056,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1090:7:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1081:43:60",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes)"
              },
              "valueType": {
                "contractScope": null,
                "id": 16057,
                "name": "DoublyLinkedList.Bytes",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 22605,
                "src": "1101:22:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Bytes"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16071,
              "nodeType": "Block",
              "src": "1186:63:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 16066,
                            "name": "CONTRACT_STORAGE_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1397,
                            "src": "1209:20:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 16067,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16061,
                            "src": "1231:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 16065,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "1204:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 16068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1204:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16064,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1196:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1196:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16070,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:46:60"
                }
              ]
            },
            "documentation": null,
            "id": 16072,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16061,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 16072,
                  "src": "1160:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16060,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1160:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1159:19:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16063,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1186:0:60"
            },
            "scope": 17874,
            "src": "1148:101:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16164,
              "nodeType": "Block",
              "src": "2668:640:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16098,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "2686:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2686:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16097,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2678:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2678:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16101,
                  "nodeType": "ExpressionStatement",
                  "src": "2678:32:60"
                },
                {
                  "assignments": [
                    16105
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16105,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16165,
                      "src": "2720:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16104,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "2720:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16109,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16106,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "2760:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16108,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16107,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16074,
                      "src": "2774:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2760:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2720:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16110,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16077,
                      "src": "2796:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16111,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2803:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16112,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7947,
                      "src": "2803:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2796:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16114,
                  "nodeType": "ExpressionStatement",
                  "src": "2796:27:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16115,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16079,
                      "src": "2833:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16116,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2845:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16117,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "2845:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2833:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16119,
                  "nodeType": "ExpressionStatement",
                  "src": "2833:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16120,
                      "name": "_endorser",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16081,
                      "src": "2873:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16121,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2885:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16122,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "endorser",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7976,
                      "src": "2885:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2873:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16124,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16125,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16083,
                      "src": "2913:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16126,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2922:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16127,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "2922:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2913:31:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16129,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:31:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16130,
                      "name": "_timeCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16085,
                      "src": "2954:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16131,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2969:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16132,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7951,
                      "src": "2969:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2954:36:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16134,
                  "nodeType": "ExpressionStatement",
                  "src": "2954:36:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16135,
                      "name": "_nVersions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16087,
                      "src": "3000:10:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16137,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16105,
                            "src": "3035:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16138,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "3035:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16136,
                        "name": "read_total_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22048,
                        "src": "3013:21:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 16139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3013:52:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3000:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16141,
                  "nodeType": "ExpressionStatement",
                  "src": "3000:65:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16142,
                      "name": "_latestVersionDoc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16089,
                      "src": "3075:17:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16144,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16105,
                            "src": "3121:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16145,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "3121:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16143,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "3095:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3095:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3075:76:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16148,
                  "nodeType": "ExpressionStatement",
                  "src": "3075:76:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16149,
                      "name": "_finalVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16091,
                      "src": "3161:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16150,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3177:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7969,
                      "src": "3177:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3161:38:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16153,
                  "nodeType": "ExpressionStatement",
                  "src": "3161:38:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16154,
                      "name": "_pausedOrStopped",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16093,
                      "src": "3209:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16155,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3228:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16156,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isPausedOrStopped",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7978,
                      "src": "3228:27:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3209:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16158,
                  "nodeType": "ExpressionStatement",
                  "src": "3209:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16159,
                      "name": "_isDigixProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16095,
                      "src": "3265:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16160,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3284:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16161,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isDigix",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7980,
                      "src": "3284:17:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3265:36:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16163,
                  "nodeType": "ExpressionStatement",
                  "src": "3265:36:60"
                }
              ]
            },
            "documentation": "//////////////////////////// READ FUNCTIONS //////////////////////////////\n @notice read all information and details of proposal\n @param _proposalId Proposal ID, i.e. hash of IPFS doc Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_doc\": \"Original IPFS doc of proposal, also ID of proposal\",\n   \"_proposer\": \"Address of the proposer\",\n   \"_endorser\": \"Address of the moderator that endorsed the proposal\",\n   \"_state\": \"Current state of the proposal\",\n   \"_timeCreated\": \"UTC timestamp at which proposal was created\",\n   \"_nVersions\": \"Number of versions of the proposal\",\n   \"_latestVersionDoc\": \"IPFS doc hash of the latest version of this proposal\",\n   \"_finalVersion\": \"If finalized, the version of the final proposal\",\n   \"_pausedOrStopped\": \"If the proposal is paused/stopped at the moment\",\n   \"_isDigixProposal\": \"If the proposal has been created by founder or not\"\n }",
            "id": 16165,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16075,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16074,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2262:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16073,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2262:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2261:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16077,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2341:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2341:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16079,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2367:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16078,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2367:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16081,
                  "name": "_endorser",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2398:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16080,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2398:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16083,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2429:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2429:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16085,
                  "name": "_timeCreated",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2457:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16084,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2457:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16087,
                  "name": "_nVersions",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2491:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16086,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2491:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16089,
                  "name": "_latestVersionDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2523:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16088,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2523:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16091,
                  "name": "_finalVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2562:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16090,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2562:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16093,
                  "name": "_pausedOrStopped",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2597:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16092,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2597:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16095,
                  "name": "_isDigixProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2632:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16094,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2632:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2327:336:60"
            },
            "scope": 17874,
            "src": "2240:1068:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16179,
              "nodeType": "Block",
              "src": "3433:64:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16172,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16170,
                      "src": "3443:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16173,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "3455:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16175,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16174,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16167,
                          "src": "3469:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3455:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16176,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "3455:35:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3443:47:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16178,
                  "nodeType": "ExpressionStatement",
                  "src": "3443:47:60"
                }
              ]
            },
            "documentation": null,
            "id": 16180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalProposer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16167,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16180,
                  "src": "3344:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16166,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3344:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3343:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16170,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 16180,
                  "src": "3410:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16169,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3410:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3409:19:60"
            },
            "scope": 17874,
            "src": "3314:183:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16195,
              "nodeType": "Block",
              "src": "3619:71:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16193,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16187,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16185,
                      "src": "3629:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16188,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "3639:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16190,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16189,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16182,
                            "src": "3653:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3639:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16191,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "prlActions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7972,
                        "src": "3639:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                          "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                        }
                      },
                      "id": 16192,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3639:44:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3629:54:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16194,
                  "nodeType": "ExpressionStatement",
                  "src": "3629:54:60"
                }
              ]
            },
            "documentation": null,
            "id": 16196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readTotalPrlActions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16182,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16196,
                  "src": "3532:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16181,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3532:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3531:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16185,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 16196,
                  "src": "3598:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16184,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:17:60"
            },
            "scope": 17874,
            "src": "3503:187:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16247,
              "nodeType": "Block",
              "src": "3853:259:60",
              "statements": [
                {
                  "assignments": [
                    16213
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16213,
                      "name": "_actions",
                      "nodeType": "VariableDeclaration",
                      "scope": 16248,
                      "src": "3863:38:60",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                        "typeString": "struct DaoStructs.PrlAction[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 16211,
                          "name": "DaoStructs.PrlAction",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 7905,
                          "src": "3863:20:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                            "typeString": "struct DaoStructs.PrlAction"
                          }
                        },
                        "id": 16212,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3863:22:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                          "typeString": "struct DaoStructs.PrlAction[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16218,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16214,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "3904:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16216,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16215,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16198,
                        "src": "3918:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3904:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16217,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "prlActions",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7972,
                    "src": "3904:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                      "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3863:78:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 16223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16220,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "3959:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16221,
                            "name": "_actions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16213,
                            "src": "3968:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                              "typeString": "struct DaoStructs.PrlAction memory[] memory"
                            }
                          },
                          "id": 16222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3968:15:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3959:24:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16219,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3951:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3951:33:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16225,
                  "nodeType": "ExpressionStatement",
                  "src": "3951:33:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16226,
                      "name": "_actionId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16203,
                      "src": "3994:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16227,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4006:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16229,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16228,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4015:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4006:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16230,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "actionId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7904,
                      "src": "4006:25:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3994:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16232,
                  "nodeType": "ExpressionStatement",
                  "src": "3994:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16233,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16205,
                      "src": "4041:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16234,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4049:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16236,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16235,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4058:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4049:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16237,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7900,
                      "src": "4049:19:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4041:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16239,
                  "nodeType": "ExpressionStatement",
                  "src": "4041:27:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16240,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16207,
                      "src": "4078:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16241,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4085:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16243,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16242,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4094:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4085:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16244,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "doc",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7902,
                      "src": "4085:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4078:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16246,
                  "nodeType": "ExpressionStatement",
                  "src": "4078:27:60"
                }
              ]
            },
            "documentation": null,
            "id": 16248,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readPrlAction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16201,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16198,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3719:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3719:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16200,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3740:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16199,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3740:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3718:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16203,
                  "name": "_actionId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3801:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16202,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16205,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3820:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16204,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3820:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16207,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3835:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3835:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3800:48:60"
            },
            "scope": 17874,
            "src": "3696:416:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16268,
              "nodeType": "Block",
              "src": "4241:114:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16256,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4259:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4259:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16255,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4251:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4251:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16259,
                  "nodeType": "ExpressionStatement",
                  "src": "4251:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16260,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16253,
                      "src": "4293:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16261,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "4303:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16263,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16262,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16250,
                            "src": "4317:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4303:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16264,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "4303:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16265,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4303:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4293:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16267,
                  "nodeType": "ExpressionStatement",
                  "src": "4293:55:60"
                }
              ]
            },
            "documentation": null,
            "id": 16269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDraftVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16250,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16269,
                  "src": "4157:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16249,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4157:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4156:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16253,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 16269,
                  "src": "4223:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16252,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4223:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4222:14:60"
            },
            "scope": 17874,
            "src": "4118:237:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16293,
              "nodeType": "Block",
              "src": "4495:123:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16279,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4513:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16280,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4513:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16278,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4505:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16281,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4505:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16282,
                  "nodeType": "ExpressionStatement",
                  "src": "4505:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16283,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16276,
                      "src": "4547:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16284,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "4557:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16286,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16285,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16271,
                              "src": "4571:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4557:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16287,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "4557:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16289,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16288,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16273,
                          "src": "4597:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4557:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16290,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4557:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4547:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16292,
                  "nodeType": "ExpressionStatement",
                  "src": "4547:64:60"
                }
              ]
            },
            "documentation": null,
            "id": 16294,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16271,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4395:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16270,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4395:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16273,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4416:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16272,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4416:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4394:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16276,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4477:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16275,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4477:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4476:14:60"
            },
            "scope": 17874,
            "src": "4361:257:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16314,
              "nodeType": "Block",
              "src": "4747:116:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16302,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4765:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4765:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16301,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4757:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4757:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16305,
                  "nodeType": "ExpressionStatement",
                  "src": "4757:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16306,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16299,
                      "src": "4799:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16307,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "4808:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16309,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16308,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16296,
                            "src": "4822:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4808:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16310,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "4808:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16311,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "4808:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4799:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16313,
                  "nodeType": "ExpressionStatement",
                  "src": "4799:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 16315,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDraftVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16296,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16315,
                  "src": "4661:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16295,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4660:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16300,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16299,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 16315,
                  "src": "4727:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4727:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4726:16:60"
            },
            "scope": 17874,
            "src": "4624:239:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16339,
              "nodeType": "Block",
              "src": "5003:125:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16325,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5021:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16326,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5021:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16324,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5013:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5013:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16328,
                  "nodeType": "ExpressionStatement",
                  "src": "5013:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16329,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16322,
                      "src": "5055:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16330,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5064:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16332,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16331,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16317,
                              "src": "5078:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5064:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16333,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5064:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16335,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16334,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16319,
                          "src": "5104:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5064:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16336,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "5064:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5055:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16338,
                  "nodeType": "ExpressionStatement",
                  "src": "5055:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 16340,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16317,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4901:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16316,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4901:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16319,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4922:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16318,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4922:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4900:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16322,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4983:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16321,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4983:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4982:16:60"
            },
            "scope": 17874,
            "src": "4869:259:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16365,
              "nodeType": "Block",
              "src": "5289:126:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16353,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5307:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5307:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16352,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5299:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5299:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16356,
                  "nodeType": "ExpressionStatement",
                  "src": "5299:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16362,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16345,
                        "src": "5398:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16357,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "5348:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16359,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16358,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16342,
                            "src": "5362:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5348:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "5348:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16361,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "5348:49:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 16363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5348:60:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 16351,
                  "id": 16364,
                  "nodeType": "Return",
                  "src": "5341:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 16366,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readDraftVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16342,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5164:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5164:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16345,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5185:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16343,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5185:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16344,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5185:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5163:42:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16351,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16348,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5253:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16347,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5253:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16350,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5267:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16349,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5267:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5252:32:60"
            },
            "scope": 17874,
            "src": "5134:281:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16395,
              "nodeType": "Block",
              "src": "5587:135:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16381,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5605:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5605:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16380,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5597:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5597:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16384,
                  "nodeType": "ExpressionStatement",
                  "src": "5597:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16392,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16373,
                        "src": "5705:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16385,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5646:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16387,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16386,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16368,
                              "src": "5660:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5646:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16388,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5646:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16390,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16389,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16370,
                          "src": "5686:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5646:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16391,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "5646:58:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 16393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5646:69:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 16379,
                  "id": 16394,
                  "nodeType": "Return",
                  "src": "5639:76:60"
                }
              ]
            },
            "documentation": null,
            "id": 16396,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16374,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16368,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5446:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16367,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5446:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16370,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5467:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16369,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5467:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16373,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5483:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16371,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5483:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16372,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5483:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5445:58:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16376,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5551:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16375,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5551:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16378,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5565:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16377,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5565:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5550:32:60"
            },
            "scope": 17874,
            "src": "5421:301:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16429,
              "nodeType": "Block",
              "src": "5922:141:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16414,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5940:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5940:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5932:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5932:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16417,
                  "nodeType": "ExpressionStatement",
                  "src": "5932:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16425,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16403,
                        "src": "6039:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 16426,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16405,
                        "src": "6050:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16418,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5981:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16420,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16419,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16398,
                              "src": "5995:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5981:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16421,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5981:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16423,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16422,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16400,
                          "src": "6021:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5981:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16424,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "listVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8163,
                      "src": "5981:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory,bool) view returns (address[] memory,uint256)"
                      }
                    },
                    "id": 16427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5981:75:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$",
                      "typeString": "tuple(address[] memory,uint256)"
                    }
                  },
                  "functionReturnParameters": 16412,
                  "id": 16428,
                  "nodeType": "Return",
                  "src": "5974:82:60"
                }
              ]
            },
            "documentation": null,
            "id": 16430,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingRoundVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16406,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16398,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5758:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16397,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5758:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16400,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5779:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5779:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16403,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5795:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16401,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5795:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16402,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5795:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16405,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5816:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16404,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5816:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5757:70:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16409,
                  "name": "_voters",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5875:24:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16407,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5875:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16408,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5875:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16411,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5901:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16410,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5901:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5874:43:60"
            },
            "scope": 17874,
            "src": "5728:335:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16454,
              "nodeType": "Block",
              "src": "6207:121:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16442,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "6225:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6225:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16441,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6217:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6217:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16445,
                  "nodeType": "ExpressionStatement",
                  "src": "6217:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16451,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16434,
                        "src": "6314:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16446,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "6266:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16448,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16447,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16432,
                            "src": "6280:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6266:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16449,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "6266:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16450,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "6266:47:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 16452,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6266:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 16440,
                  "id": 16453,
                  "nodeType": "Return",
                  "src": "6259:62:60"
                }
              ]
            },
            "documentation": null,
            "id": 16455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readDraftVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16435,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16432,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6092:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16431,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6092:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16434,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6113:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16433,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6113:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6091:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16437,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6174:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16436,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6174:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16439,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6186:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6186:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6173:29:60"
            },
            "scope": 17874,
            "src": "6069:259:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16483,
              "nodeType": "Block",
              "src": "6696:136:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16467,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "6714:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16468,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6714:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16466,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6706:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6706:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16470,
                  "nodeType": "ExpressionStatement",
                  "src": "6706:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16471,
                      "name": "_commitHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16464,
                      "src": "6748:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 16472,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "6762:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 16474,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 16473,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16457,
                                "src": "6776:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6762:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 16475,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "votingRounds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7963,
                            "src": "6762:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                              "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                            }
                          },
                          "id": 16477,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16476,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16459,
                            "src": "6802:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6762:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 16478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "6762:55:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 16480,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16479,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16461,
                        "src": "6818:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6762:63:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "6748:77:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16482,
                  "nodeType": "ExpressionStatement",
                  "src": "6748:77:60"
                }
              ]
            },
            "documentation": "@notice returns the latest committed vote by a voter on a proposal\n @param _proposalId proposal ID\n @param _voter address of the voter\n @return {\n   \"_commitHash\": \"\"\n }",
            "id": 16484,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readComittedVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16457,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6573:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16456,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6573:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16459,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6594:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6594:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16461,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6610:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16460,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6610:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6572:53:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16464,
                  "name": "_commitHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6671:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16463,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6671:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6670:21:60"
            },
            "scope": 17874,
            "src": "6547:285:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16512,
              "nodeType": "Block",
              "src": "6987:130:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16498,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "7005:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7005:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16497,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6997:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6997:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16501,
                  "nodeType": "ExpressionStatement",
                  "src": "6997:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16509,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16490,
                        "src": "7103:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16502,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "7046:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16504,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16503,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16486,
                              "src": "7060:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7046:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16505,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "7046:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16507,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16506,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16488,
                          "src": "7086:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7046:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16508,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "7046:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 16510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7046:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 16496,
                  "id": 16511,
                  "nodeType": "Return",
                  "src": "7039:71:60"
                }
              ]
            },
            "documentation": null,
            "id": 16513,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16486,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6856:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16485,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6856:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16488,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6877:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16487,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6877:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16490,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6893:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16489,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6893:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6855:53:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16496,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16493,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6954:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16492,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6954:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16495,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6966:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16494,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6966:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6953:29:60"
            },
            "scope": 17874,
            "src": "6838:279:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16524,
              "nodeType": "Block",
              "src": "7330:63:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16518,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16516,
                      "src": "7340:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16520,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "7373:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16519,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "7346:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16521,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7346:40:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7340:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16523,
                  "nodeType": "ExpressionStatement",
                  "src": "7340:46:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the first proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16525,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16514,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7265:2:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16516,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16525,
                  "src": "7313:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16515,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7313:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7312:13:60"
            },
            "scope": 17874,
            "src": "7240:153:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16536,
              "nodeType": "Block",
              "src": "7604:62:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16530,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16528,
                      "src": "7614:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16532,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "7646:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16531,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "7620:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7620:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7614:45:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16535,
                  "nodeType": "ExpressionStatement",
                  "src": "7614:45:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the last proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16537,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16526,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7539:2:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16528,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16537,
                  "src": "7587:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7587:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7586:13:60"
            },
            "scope": 17874,
            "src": "7515:151:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16551,
              "nodeType": "Block",
              "src": "7969:109:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16544,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16542,
                      "src": "7979:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16546,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "8024:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16547,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16539,
                          "src": "8050:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16545,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "7985:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7985:86:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7979:92:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16550,
                  "nodeType": "ExpressionStatement",
                  "src": "7979:92:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of proposal next to _proposalId\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_id\": \"\"\n }",
            "id": 16552,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16539,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16552,
                  "src": "7886:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16538,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7886:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7885:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16542,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16552,
                  "src": "7952:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16541,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7952:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7951:13:60"
            },
            "scope": 17874,
            "src": "7861:217:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16566,
              "nodeType": "Block",
              "src": "8389:113:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16559,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16557,
                      "src": "8399:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16561,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "8448:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16562,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16554,
                          "src": "8474:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16560,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "8405:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8405:90:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8399:96:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16565,
                  "nodeType": "ExpressionStatement",
                  "src": "8399:96:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of proposal previous to _proposalId\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_id\": \"\"\n }",
            "id": 16567,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16554,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16567,
                  "src": "8306:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16553,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8306:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8305:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16557,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16567,
                  "src": "8372:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16556,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8372:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8371:13:60"
            },
            "scope": 17874,
            "src": "8277:225:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16587,
              "nodeType": "Block",
              "src": "8805:119:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16575,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "8823:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8823:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16574,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8815:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8815:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16578,
                  "nodeType": "ExpressionStatement",
                  "src": "8815:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16579,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16572,
                      "src": "8857:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16581,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "8890:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16583,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16582,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16569,
                            "src": "8907:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "8890:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16580,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "8863:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8863:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8857:60:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16586,
                  "nodeType": "ExpressionStatement",
                  "src": "8857:60:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the first proposal in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16588,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16569,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16588,
                  "src": "8725:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16568,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8725:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8724:18:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16572,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16588,
                  "src": "8788:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16571,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8788:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8787:13:60"
            },
            "scope": 17874,
            "src": "8692:232:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16608,
              "nodeType": "Block",
              "src": "9225:118:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16596,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9243:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16597,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9243:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9235:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16598,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9235:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16599,
                  "nodeType": "ExpressionStatement",
                  "src": "9235:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16600,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16593,
                      "src": "9277:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16602,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "9309:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16604,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16603,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16590,
                            "src": "9326:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9309:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16601,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "9283:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16605,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9283:53:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9277:59:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16607,
                  "nodeType": "ExpressionStatement",
                  "src": "9277:59:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the last proposal in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16609,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16590,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16609,
                  "src": "9145:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9145:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9144:18:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16593,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16609,
                  "src": "9208:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16592,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9208:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9207:13:60"
            },
            "scope": 17874,
            "src": "9113:230:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16632,
              "nodeType": "Block",
              "src": "9680:165:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16619,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9698:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9698:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16618,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9690:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9690:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16622,
                  "nodeType": "ExpressionStatement",
                  "src": "9690:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16623,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16616,
                      "src": "9732:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16625,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "9777:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16627,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16626,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16611,
                            "src": "9794:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9777:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16628,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16613,
                          "src": "9817:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16624,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "9738:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16629,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9738:100:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9732:106:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16631,
                  "nodeType": "ExpressionStatement",
                  "src": "9732:106:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the next proposal to _proposalId in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16633,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16611,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9579:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16610,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9579:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16613,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9597:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9597:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9578:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16616,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9663:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16615,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9663:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9662:13:60"
            },
            "scope": 17874,
            "src": "9547:298:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16656,
              "nodeType": "Block",
              "src": "10190:169:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16643,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "10208:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16644,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10208:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16642,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "10200:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10200:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16646,
                  "nodeType": "ExpressionStatement",
                  "src": "10200:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16647,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16640,
                      "src": "10242:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16649,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "10291:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16651,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16650,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16635,
                            "src": "10308:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10291:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16652,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16637,
                          "src": "10331:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16648,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "10248:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10248:104:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "10242:110:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16655,
                  "nodeType": "ExpressionStatement",
                  "src": "10242:110:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the previous proposal to _proposalId in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16657,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16635,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10089:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16634,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10089:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16637,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10107:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16636,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10107:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10088:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16641,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16640,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10173:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16639,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10173:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10172:13:60"
            },
            "scope": 17874,
            "src": "10053:306:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16682,
              "nodeType": "Block",
              "src": "10953:91:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16673,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "10970:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16675,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16674,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16659,
                              "src": "10984:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10970:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "10970:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16678,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16677,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16661,
                          "src": "11014:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10970:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16679,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8273,
                      "src": "10970:65:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_ProposalVersion_$7945_storage_ptr_$returns$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$bound_to$_t_struct$_ProposalVersion_$7945_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.ProposalVersion storage pointer) view returns (bytes32,uint256,uint256[] memory,uint256)"
                      }
                    },
                    "id": 16680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10970:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                      "typeString": "tuple(bytes32,uint256,uint256[] memory,uint256)"
                    }
                  },
                  "functionReturnParameters": 16672,
                  "id": 16681,
                  "nodeType": "Return",
                  "src": "10963:74:60"
                }
              ]
            },
            "documentation": "@notice read proposal version details for a specific version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal, i.e. hash of IPFS doc for specific version\n return {\n   \"_doc\": \"\",\n   \"_created\": \"\",\n   \"_milestoneFundings\": \"\"\n }",
            "id": 16683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16659,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10723:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16658,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10723:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16661,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10744:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16660,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10744:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10722:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16664,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10820:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10820:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16666,
                  "name": "_created",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10846:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16665,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10846:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16669,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10876:28:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16667,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10876:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16668,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10876:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16671,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10918:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16670,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10918:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10806:142:60"
            },
            "scope": 17874,
            "src": "10694:350:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16731,
              "nodeType": "Block",
              "src": "11383:362:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16694,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11401:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11401:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16693,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11393:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11393:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16697,
                  "nodeType": "ExpressionStatement",
                  "src": "11393:32:60"
                },
                {
                  "assignments": [
                    16699
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16699,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 16732,
                      "src": "11435:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 16698,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11435:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16704,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16700,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "11459:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16702,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16701,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16685,
                        "src": "11473:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "11459:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16703,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "11459:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11435:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 16708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16706,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11516:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 16707,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "11533:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "11516:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16705,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11508:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11508:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16710,
                  "nodeType": "ExpressionStatement",
                  "src": "11508:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16711,
                      "name": "_fundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16689,
                      "src": "11555:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16712,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "11567:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16714,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16713,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16685,
                              "src": "11581:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11567:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16715,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "11567:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16717,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16716,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11611:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11567:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16718,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "11567:76:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "11555:88:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 16720,
                  "nodeType": "ExpressionStatement",
                  "src": "11555:88:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16721,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16691,
                      "src": "11653:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16722,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "11668:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16724,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16723,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16685,
                              "src": "11682:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11668:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "11668:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16727,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16726,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11712:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11668:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16728,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "11668:70:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11653:85:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16730,
                  "nodeType": "ExpressionStatement",
                  "src": "11653:85:60"
                }
              ]
            },
            "documentation": "@notice Read the fundings of a finalized proposal\n@return {\n\"_fundings\": \"fundings for the milestones\",\n\"_finalReward\": \"the final reward\"\n}",
            "id": 16732,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalFunding",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16685,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11263:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16684,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11263:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11262:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16692,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16689,
                  "name": "_fundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11329:26:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16687,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11329:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16688,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11329:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16691,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11357:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16690,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11357:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11328:50:60"
            },
            "scope": 17874,
            "src": "11234:511:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16755,
              "nodeType": "Block",
              "src": "11886:126:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16742,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11904:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11904:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16741,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11896:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11896:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16745,
                  "nodeType": "ExpressionStatement",
                  "src": "11896:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16746,
                      "name": "_funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16739,
                      "src": "11938:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16751,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16736,
                          "src": "11998:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16747,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "11949:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16749,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16748,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16734,
                            "src": "11963:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11949:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16750,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readProposalMilestone",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8333,
                        "src": "11949:48:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Proposal_$7981_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                          "typeString": "function (struct DaoStructs.Proposal storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 16752,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11949:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11938:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16754,
                  "nodeType": "ExpressionStatement",
                  "src": "11938:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 16756,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16734,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11782:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16733,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16736,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11803:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16735,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11803:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11781:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16739,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11864:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11864:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11863:18:60"
            },
            "scope": 17874,
            "src": "11751:261:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16778,
              "nodeType": "Block",
              "src": "12320:161:60",
              "statements": [
                {
                  "assignments": [
                    16766
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16766,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16779,
                      "src": "12330:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16765,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "12330:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16770,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16767,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "12370:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16769,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16768,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16758,
                      "src": "12384:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12370:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12330:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16771,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16761,
                      "src": "12406:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16773,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16766,
                            "src": "12444:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16774,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "12444:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16772,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "12417:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12417:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12406:68:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16777,
                  "nodeType": "ExpressionStatement",
                  "src": "12406:68:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the first version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_version\": \"\"\n }",
            "id": 16779,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16758,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16779,
                  "src": "12232:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12232:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12231:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16761,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16779,
                  "src": "12298:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16760,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12298:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12297:18:60"
            },
            "scope": 17874,
            "src": "12199:282:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16801,
              "nodeType": "Block",
              "src": "12787:160:60",
              "statements": [
                {
                  "assignments": [
                    16789
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16789,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16802,
                      "src": "12797:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16788,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "12797:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16793,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16790,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "12837:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16792,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16791,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16781,
                      "src": "12851:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12837:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12797:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16794,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16784,
                      "src": "12873:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16796,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16789,
                            "src": "12910:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16797,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "12910:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16795,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "12884:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12884:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12873:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16800,
                  "nodeType": "ExpressionStatement",
                  "src": "12873:67:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the last version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_version\": \"\"\n }",
            "id": 16802,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16781,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16802,
                  "src": "12699:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16780,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12699:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12698:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16785,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16784,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16802,
                  "src": "12765:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16783,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12765:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12764:18:60"
            },
            "scope": 17874,
            "src": "12667:280:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16827,
              "nodeType": "Block",
              "src": "13335:208:60",
              "statements": [
                {
                  "assignments": [
                    16814
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16814,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16828,
                      "src": "13345:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16813,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "13345:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16818,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16815,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "13385:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16817,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16816,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16804,
                      "src": "13399:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13385:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13345:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16819,
                      "name": "_nextVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16809,
                      "src": "13421:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16821,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16814,
                            "src": "13475:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16822,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "13475:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16823,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16806,
                          "src": "13518:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16820,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "13436:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16824,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13436:100:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "13421:115:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16826,
                  "nodeType": "ExpressionStatement",
                  "src": "13421:115:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the next version to _version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal\n return {\n   \"_nextVersion\": \"\"\n }",
            "id": 16828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16804,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13225:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13225:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16806,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13246:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16805,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13246:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13224:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16809,
                  "name": "_nextVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13309:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13309:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13308:22:60"
            },
            "scope": 17874,
            "src": "13193:350:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16853,
              "nodeType": "Block",
              "src": "13947:216:60",
              "statements": [
                {
                  "assignments": [
                    16840
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16840,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16854,
                      "src": "13957:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16839,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "13957:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16844,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16841,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "13997:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16843,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16842,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16830,
                      "src": "14011:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13997:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13957:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16845,
                      "name": "_previousVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16835,
                      "src": "14033:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16847,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16840,
                            "src": "14095:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16848,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "14095:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16849,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16832,
                          "src": "14138:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16846,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "14052:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14052:104:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14033:123:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16852,
                  "nodeType": "ExpressionStatement",
                  "src": "14033:123:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the previous version to _version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal\n return {\n   \"_previousVersion\": \"\"\n }",
            "id": 16854,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16830,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13833:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13833:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16832,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13854:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16831,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13854:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13832:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16836,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16835,
                  "name": "_previousVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13917:24:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16834,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13917:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13916:26:60"
            },
            "scope": 17874,
            "src": "13797:366:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16869,
              "nodeType": "Block",
              "src": "14278:74:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16861,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16859,
                      "src": "14288:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16862,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "14299:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16864,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16863,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16856,
                            "src": "14313:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14299:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16865,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "14299:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "14299:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14288:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16868,
                  "nodeType": "ExpressionStatement",
                  "src": "14288:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 16870,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDraftClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16856,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16870,
                  "src": "14193:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16855,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14193:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14192:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16859,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 16870,
                  "src": "14259:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16858,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14259:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14258:15:60"
            },
            "scope": 17874,
            "src": "14169:183:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16889,
              "nodeType": "Block",
              "src": "14478:83:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16879,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16877,
                      "src": "14488:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16880,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "14499:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16882,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16881,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16872,
                              "src": "14513:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14499:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16883,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "14499:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16885,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16884,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16874,
                          "src": "14539:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14499:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16886,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "14499:55:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14488:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16888,
                  "nodeType": "ExpressionStatement",
                  "src": "14488:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 16890,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16875,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16872,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14377:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16871,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14377:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16874,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14398:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16873,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14398:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14376:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16877,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14459:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16876,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14459:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14458:15:60"
            },
            "scope": 17874,
            "src": "14358:203:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16909,
              "nodeType": "Block",
              "src": "14692:112:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16898,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "14710:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14710:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16897,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "14702:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14702:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16901,
                  "nodeType": "ExpressionStatement",
                  "src": "14702:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16902,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16895,
                      "src": "14744:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16903,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "14754:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16905,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16904,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16892,
                          "src": "14768:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14754:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "collateralStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7965,
                      "src": "14754:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14744:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16908,
                  "nodeType": "ExpressionStatement",
                  "src": "14744:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 16910,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalCollateralStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16892,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16910,
                  "src": "14605:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16891,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14605:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14604:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16895,
                  "name": "_status",
                  "nodeType": "VariableDeclaration",
                  "scope": 16910,
                  "src": "14671:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16894,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14671:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14670:17:60"
            },
            "scope": 17874,
            "src": "14567:237:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16924,
              "nodeType": "Block",
              "src": "14935:70:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16917,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16915,
                      "src": "14945:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16918,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "14955:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16920,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16919,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16912,
                          "src": "14969:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14955:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16921,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "collateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7967,
                      "src": "14955:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14945:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16923,
                  "nodeType": "ExpressionStatement",
                  "src": "14945:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 16925,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalCollateralAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16912,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16925,
                  "src": "14848:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14848:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14847:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16915,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 16925,
                  "src": "14914:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16914,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14914:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14913:17:60"
            },
            "scope": 17874,
            "src": "14810:195:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16956,
              "nodeType": "Block",
              "src": "15276:216:60",
              "statements": [
                {
                  "assignments": [
                    16934
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16934,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 16957,
                      "src": "15286:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 16933,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15286:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16939,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16935,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "15310:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16937,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16936,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16927,
                        "src": "15324:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "15310:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16938,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "15310:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15286:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 16943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16941,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16934,
                          "src": "15367:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 16942,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "15384:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "15367:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16940,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "15359:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15359:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16945,
                  "nodeType": "ExpressionStatement",
                  "src": "15359:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16946,
                      "name": "_moreDocs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16931,
                      "src": "15406:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16947,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "15418:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16949,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16948,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16927,
                              "src": "15432:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15418:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16950,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "15418:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16952,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16951,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16934,
                          "src": "15462:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15418:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "moreDocs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7944,
                      "src": "15418:67:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "src": "15406:79:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 16955,
                  "nodeType": "ExpressionStatement",
                  "src": "15406:79:60"
                }
              ]
            },
            "documentation": "@notice Read the additional docs that are added after the proposal is finalized\n @dev Will throw if the propsal is not finalized yet",
            "id": 16957,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDocs",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16927,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16957,
                  "src": "15185:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16926,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15185:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15184:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16932,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16931,
                  "name": "_moreDocs",
                  "nodeType": "VariableDeclaration",
                  "scope": 16957,
                  "src": "15251:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16929,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15251:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16930,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15251:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15250:21:60"
            },
            "scope": 17874,
            "src": "15159:333:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16981,
              "nodeType": "Block",
              "src": "15635:129:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16967,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "15653:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16968,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15653:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16966,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "15645:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15645:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16970,
                  "nodeType": "ExpressionStatement",
                  "src": "15645:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16979,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16971,
                      "name": "_funded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16964,
                      "src": "15687:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16972,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "15697:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16974,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16973,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16959,
                              "src": "15711:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15697:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16975,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "15697:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16977,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16976,
                          "name": "_milestoneId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16961,
                          "src": "15737:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15697:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16978,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "funded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7929,
                      "src": "15697:60:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15687:70:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16980,
                  "nodeType": "ExpressionStatement",
                  "src": "15687:70:60"
                }
              ]
            },
            "documentation": null,
            "id": 16982,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readIfMilestoneFunded",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16959,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15529:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15529:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16961,
                  "name": "_milestoneId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15550:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15550:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15528:43:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16965,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16964,
                  "name": "_funded",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15617:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16963,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:14:60"
            },
            "scope": 17874,
            "src": "15498:266:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17074,
              "nodeType": "Block",
              "src": "16043:626:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 16998,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "16071:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 16997,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "16061:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 16999,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16061:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16996,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16053:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16053:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17001,
                  "nodeType": "ExpressionStatement",
                  "src": "16053:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 17014,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 17008,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 17003,
                                    "name": "proposalsById",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16055,
                                    "src": "16115:13:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                      "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                    }
                                  },
                                  "id": 17005,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17004,
                                    "name": "_doc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16984,
                                    "src": "16129:4:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16115:19:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                    "typeString": "struct DaoStructs.Proposal storage ref"
                                  }
                                },
                                "id": 17006,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7947,
                                "src": "16115:30:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 17007,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "16149:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "16115:45:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 17009,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16114:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 17012,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 17010,
                                "name": "_doc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16984,
                                "src": "16176:4:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 17011,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "16184:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "16176:19:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 17013,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16175:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "16114:82:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17002,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16095:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17015,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16095:111:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17016,
                  "nodeType": "ExpressionStatement",
                  "src": "16095:111:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17020,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16237:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 17017,
                        "name": "allProposals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16051,
                        "src": "16217:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17019,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "16217:19:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17021,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16217:25:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17022,
                  "nodeType": "ExpressionStatement",
                  "src": "16217:25:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17027,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16304:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17023,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "16252:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17025,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17024,
                          "name": "PROPOSAL_STATE_PREPROPOSAL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1301,
                          "src": "16269:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16252:44:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17026,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "16252:51:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16252:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17029,
                  "nodeType": "ExpressionStatement",
                  "src": "16252:57:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17030,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16319:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17032,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17031,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16333:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16319:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17033,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7947,
                      "src": "16319:30:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17034,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16984,
                      "src": "16352:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16319:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17036,
                  "nodeType": "ExpressionStatement",
                  "src": "16319:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17037,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16366:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17039,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17038,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16380:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16366:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17040,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "16366:28:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17041,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16986,
                      "src": "16397:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "16366:40:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 17043,
                  "nodeType": "ExpressionStatement",
                  "src": "16366:40:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17044,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16416:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17046,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17045,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16430:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16416:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17047,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "16416:32:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17048,
                      "name": "PROPOSAL_STATE_PREPROPOSAL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1301,
                      "src": "16451:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16416:61:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17050,
                  "nodeType": "ExpressionStatement",
                  "src": "16416:61:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17051,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16487:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17053,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17052,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16501:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16487:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17054,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7951,
                      "src": "16487:31:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17055,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "16521:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16487:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17057,
                  "nodeType": "ExpressionStatement",
                  "src": "16487:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17058,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16534:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17060,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17059,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16548:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16534:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17061,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "isDigix",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7980,
                      "src": "16534:27:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17062,
                      "name": "_isFounder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16993,
                      "src": "16564:10:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16534:40:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17064,
                  "nodeType": "ExpressionStatement",
                  "src": "16534:40:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17069,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16623:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17070,
                        "name": "_milestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16989,
                        "src": "16629:18:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17071,
                        "name": "_finalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16991,
                        "src": "16649:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17065,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16584:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17067,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17066,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16598:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16584:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17068,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addProposalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8400,
                      "src": "16584:38:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Proposal_$7981_storage_ptr_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Proposal storage pointer,bytes32,uint256[] memory,uint256)"
                      }
                    },
                    "id": 17072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16584:78:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17073,
                  "nodeType": "ExpressionStatement",
                  "src": "16584:78:60"
                }
              ]
            },
            "documentation": "/////////////////////////// WRITE FUNCTIONS //////////////////////////////",
            "id": 17075,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16984,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15883:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16983,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15883:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16986,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15905:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16985,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15905:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16989,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15932:28:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16987,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "15932:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16988,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15932:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16991,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15970:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16990,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15970:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16993,
                  "name": "_isFounder",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "16000:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16992,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16000:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15873:148:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16995,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16043:0:60"
            },
            "scope": 17874,
            "src": "15853:816:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17102,
              "nodeType": "Block",
              "src": "16849:151:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17089,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "16877:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17088,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "16867:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16867:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17087,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16859:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16859:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17092,
                  "nodeType": "ExpressionStatement",
                  "src": "16859:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17097,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17079,
                        "src": "16948:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17098,
                        "name": "_newMilestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17082,
                        "src": "16957:21:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17099,
                        "name": "_finalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17084,
                        "src": "16980:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17093,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16902:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17095,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17094,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17077,
                          "src": "16916:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16902:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17096,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addProposalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8400,
                      "src": "16902:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Proposal_$7981_storage_ptr_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Proposal storage pointer,bytes32,uint256[] memory,uint256)"
                      }
                    },
                    "id": 17100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16902:91:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17101,
                  "nodeType": "ExpressionStatement",
                  "src": "16902:91:60"
                }
              ]
            },
            "documentation": null,
            "id": 17103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "editProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17077,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16706:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16706:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17079,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16735:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17078,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16735:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17082,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16760:31:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17080,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "16760:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17081,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16760:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17084,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16801:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17083,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16696:131:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17086,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16849:0:60"
            },
            "scope": 17874,
            "src": "16675:325:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17152,
              "nodeType": "Block",
              "src": "17234:375:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17115,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "17262:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17114,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "17252:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17252:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17113,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17244:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17244:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17118,
                  "nodeType": "ExpressionStatement",
                  "src": "17244:32:60"
                },
                {
                  "assignments": [
                    17120
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17120,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 17153,
                      "src": "17287:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17119,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17287:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17125,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17121,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "17311:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17123,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17122,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17105,
                        "src": "17325:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "17311:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17124,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "17311:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17287:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 17127,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17368:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17128,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "17385:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "17368:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17126,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17360:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17360:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17131,
                  "nodeType": "ExpressionStatement",
                  "src": "17360:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17132,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "17407:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17134,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17133,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17105,
                              "src": "17421:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "17407:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17135,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "17407:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 17137,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17136,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17451:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17407:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 17138,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "17407:76:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17139,
                      "name": "_newMilestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17108,
                      "src": "17486:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                        "typeString": "uint256[] calldata"
                      }
                    },
                    "src": "17407:100:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 17141,
                  "nodeType": "ExpressionStatement",
                  "src": "17407:100:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17142,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "17517:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17144,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17143,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17105,
                              "src": "17531:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "17517:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17145,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "17517:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 17147,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17146,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17561:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17517:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 17148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "17517:70:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17149,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17110,
                      "src": "17590:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17517:85:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17151,
                  "nodeType": "ExpressionStatement",
                  "src": "17517:85:60"
                }
              ]
            },
            "documentation": "@notice change fundings of a proposal\n @dev Will throw if the proposal is not finalized yet",
            "id": 17153,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changeFundings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17105,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17137:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17104,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17137:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17108,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17158:31:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17106,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "17158:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17107,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "17158:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17110,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17191:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17191:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17136:76:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17112,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17234:0:60"
            },
            "scope": 17874,
            "src": "17113:496:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17190,
              "nodeType": "Block",
              "src": "17757:313:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17162,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "17785:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17161,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "17775:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17163,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17775:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17160,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17767:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17767:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17165,
                  "nodeType": "ExpressionStatement",
                  "src": "17767:32:60"
                },
                {
                  "assignments": [
                    17167
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17167,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 17191,
                      "src": "17810:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17166,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17810:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17172,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17168,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "17834:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17170,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17169,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17155,
                        "src": "17848:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "17834:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17171,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "17834:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17810:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 17174,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17167,
                          "src": "17891:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17175,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "17908:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "17891:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17173,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17883:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17883:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17178,
                  "nodeType": "ExpressionStatement",
                  "src": "17883:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17187,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17157,
                        "src": "18055:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17179,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "17982:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17181,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17180,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17155,
                                "src": "17996:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17982:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17182,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "proposalVersions",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7957,
                            "src": "17982:43:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                            }
                          },
                          "id": 17184,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17183,
                            "name": "_finalVersion",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17167,
                            "src": "18026:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17982:58:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                            "typeString": "struct DaoStructs.ProposalVersion storage ref"
                          }
                        },
                        "id": 17185,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "moreDocs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7944,
                        "src": "17982:67:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 17186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17982:72:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 17188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17982:81:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17189,
                  "nodeType": "ExpressionStatement",
                  "src": "17982:81:60"
                }
              ]
            },
            "documentation": "@dev Will throw if the proposal is not finalized yet",
            "id": 17191,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposalDoc",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17155,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17191,
                  "src": "17700:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17154,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17700:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17157,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17191,
                  "src": "17721:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17156,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17721:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17699:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17159,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17757:0:60"
            },
            "scope": 17874,
            "src": "17676:394:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17211,
              "nodeType": "Block",
              "src": "18142:137:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17198,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "18170:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17197,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18160:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18160:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17196,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18152:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18152:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17201,
                  "nodeType": "ExpressionStatement",
                  "src": "18152:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17202,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "18195:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17204,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17203,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17193,
                          "src": "18209:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18195:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17205,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7969,
                      "src": "18195:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 17207,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17193,
                          "src": "18260:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 17206,
                        "name": "getLastProposalVersion",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16802,
                        "src": "18237:22:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 17208,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18237:35:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18195:77:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17210,
                  "nodeType": "ExpressionStatement",
                  "src": "18195:77:60"
                }
              ]
            },
            "documentation": null,
            "id": 17212,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "finalizeProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17194,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17193,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17212,
                  "src": "18102:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18102:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18101:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18142:0:60"
            },
            "scope": 17874,
            "src": "18076:203:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17259,
              "nodeType": "Block",
              "src": "18397:368:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17221,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "18425:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17220,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18415:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17222,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18415:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17219,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18407:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18407:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17224,
                  "nodeType": "ExpressionStatement",
                  "src": "18407:32:60"
                },
                {
                  "assignments": [
                    17228
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17228,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 17260,
                      "src": "18450:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17227,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "18450:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17232,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 17229,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "18490:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 17231,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 17230,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17214,
                      "src": "18504:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18490:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18450:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17233,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17228,
                        "src": "18526:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 17235,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "endorser",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7976,
                      "src": "18526:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17236,
                      "name": "_endorser",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17216,
                      "src": "18547:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "18526:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 17238,
                  "nodeType": "ExpressionStatement",
                  "src": "18526:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17239,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17228,
                        "src": "18566:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 17241,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "18566:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17242,
                      "name": "PROPOSAL_STATE_DRAFT",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1304,
                      "src": "18591:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18566:45:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17244,
                  "nodeType": "ExpressionStatement",
                  "src": "18566:45:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17249,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17214,
                        "src": "18678:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17245,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "18621:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17247,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17246,
                          "name": "PROPOSAL_STATE_PREPROPOSAL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1301,
                          "src": "18638:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18621:44:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17248,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "18621:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18621:69:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17251,
                  "nodeType": "ExpressionStatement",
                  "src": "18621:69:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17256,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17214,
                        "src": "18746:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17252,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "18700:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17254,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17253,
                          "name": "PROPOSAL_STATE_DRAFT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1304,
                          "src": "18717:20:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18700:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17255,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "18700:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18700:58:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17258,
                  "nodeType": "ExpressionStatement",
                  "src": "18700:58:60"
                }
              ]
            },
            "documentation": null,
            "id": 17260,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "updateProposalEndorse",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17217,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17214,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17260,
                  "src": "18325:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18325:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17216,
                  "name": "_endorser",
                  "nodeType": "VariableDeclaration",
                  "scope": 17260,
                  "src": "18354:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17215,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18354:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18315:62:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17218,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18397:0:60"
            },
            "scope": 17874,
            "src": "18285:480:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17310,
              "nodeType": "Block",
              "src": "18855:460:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17269,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "18883:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17268,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18873:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18873:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17267,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18865:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18865:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17272,
                  "nodeType": "ExpressionStatement",
                  "src": "18865:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17273,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "18922:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17275,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17274,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17262,
                            "src": "18936:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18922:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17276,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "18922:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17277,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "18922:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17278,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17264,
                      "src": "18970:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "18922:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17280,
                  "nodeType": "ExpressionStatement",
                  "src": "18922:55:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17281,
                    "name": "_result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17264,
                    "src": "18991:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17308,
                    "nodeType": "Block",
                    "src": "19250:59:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17305,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19286:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 17304,
                            "name": "closeProposalInternal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17643,
                            "src": "19264:21:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 17306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19264:34:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 17307,
                        "nodeType": "ExpressionStatement",
                        "src": "19264:34:60"
                      }
                    ]
                  },
                  "id": 17309,
                  "nodeType": "IfStatement",
                  "src": "18987:322:60",
                  "trueBody": {
                    "id": 17303,
                    "nodeType": "Block",
                    "src": "19000:244:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17286,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19065:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17282,
                                "name": "proposalsByState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16059,
                                "src": "19014:16:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                }
                              },
                              "id": 17284,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17283,
                                "name": "PROPOSAL_STATE_DRAFT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1304,
                                "src": "19031:20:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19014:38:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                "typeString": "struct DoublyLinkedList.Bytes storage ref"
                              }
                            },
                            "id": 17285,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "remove_item",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24621,
                            "src": "19014:50:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                              "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                            }
                          },
                          "id": 17287,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19014:63:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17288,
                        "nodeType": "ExpressionStatement",
                        "src": "19014:63:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17293,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19141:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17289,
                                "name": "proposalsByState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16059,
                                "src": "19091:16:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                }
                              },
                              "id": 17291,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17290,
                                "name": "PROPOSAL_STATE_MODERATED",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1307,
                                "src": "19108:24:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19091:42:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                "typeString": "struct DoublyLinkedList.Bytes storage ref"
                              }
                            },
                            "id": 17292,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "append",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24585,
                            "src": "19091:49:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                              "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                            }
                          },
                          "id": 17294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19091:62:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17295,
                        "nodeType": "ExpressionStatement",
                        "src": "19091:62:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17296,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "19167:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17298,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17297,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17262,
                                "src": "19181:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19167:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17299,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "currentState",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7949,
                            "src": "19167:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17300,
                            "name": "PROPOSAL_STATE_MODERATED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1307,
                            "src": "19209:24:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "19167:66:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 17302,
                        "nodeType": "ExpressionStatement",
                        "src": "19167:66:60"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalDraftPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17262,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17311,
                  "src": "18801:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17261,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17264,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 17311,
                  "src": "18822:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17263,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "18822:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18800:35:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17266,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18855:0:60"
            },
            "scope": 17874,
            "src": "18771:544:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17370,
              "nodeType": "Block",
              "src": "19416:487:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17322,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "19444:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17321,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "19434:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19434:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17320,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "19426:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19426:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17325,
                  "nodeType": "ExpressionStatement",
                  "src": "19426:46:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "19487:8:60",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 17326,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17317,
                      "src": "19488:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 17335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 17333,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17315,
                        "src": "19566:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 17334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19576:1:60",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "19566:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 17358,
                    "nodeType": "IfStatement",
                    "src": "19562:261:60",
                    "trueBody": {
                      "id": 17357,
                      "nodeType": "Block",
                      "src": "19579:244:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17340,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17313,
                                "src": "19648:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17336,
                                  "name": "proposalsByState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16059,
                                  "src": "19593:16:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                  }
                                },
                                "id": 17338,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17337,
                                  "name": "PROPOSAL_STATE_MODERATED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1307,
                                  "src": "19610:24:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19593:42:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                  "typeString": "struct DoublyLinkedList.Bytes storage ref"
                                }
                              },
                              "id": 17339,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "remove_item",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24621,
                              "src": "19593:54:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                                "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                              }
                            },
                            "id": 17341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19593:67:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17342,
                          "nodeType": "ExpressionStatement",
                          "src": "19593:67:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17347,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17313,
                                "src": "19722:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17343,
                                  "name": "proposalsByState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16059,
                                  "src": "19674:16:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                  }
                                },
                                "id": 17345,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17344,
                                  "name": "PROPOSAL_STATE_ONGOING",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1310,
                                  "src": "19691:22:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19674:40:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                  "typeString": "struct DoublyLinkedList.Bytes storage ref"
                                }
                              },
                              "id": 17346,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "append",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24585,
                              "src": "19674:47:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                                "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                              }
                            },
                            "id": 17348,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19674:60:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17349,
                          "nodeType": "ExpressionStatement",
                          "src": "19674:60:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17355,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17350,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "19748:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17352,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17351,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17313,
                                  "src": "19762:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19748:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17353,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "currentState",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7949,
                              "src": "19748:39:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 17354,
                              "name": "PROPOSAL_STATE_ONGOING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1310,
                              "src": "19790:22:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "19748:64:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 17356,
                          "nodeType": "ExpressionStatement",
                          "src": "19748:64:60"
                        }
                      ]
                    }
                  },
                  "id": 17359,
                  "nodeType": "IfStatement",
                  "src": "19483:340:60",
                  "trueBody": {
                    "id": 17332,
                    "nodeType": "Block",
                    "src": "19497:59:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17329,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17313,
                              "src": "19533:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 17328,
                            "name": "closeProposalInternal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17643,
                            "src": "19511:21:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 17330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19511:34:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 17331,
                        "nodeType": "ExpressionStatement",
                        "src": "19511:34:60"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17368,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17360,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "19832:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17362,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17361,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17313,
                              "src": "19846:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "19832:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17363,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "19832:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17365,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17364,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17315,
                          "src": "19872:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19832:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17366,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "19832:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17367,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17317,
                      "src": "19889:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19832:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17369,
                  "nodeType": "ExpressionStatement",
                  "src": "19832:64:60"
                }
              ]
            },
            "documentation": null,
            "id": 17371,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17313,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19346:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17312,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19346:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17315,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19367:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19367:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17317,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19383:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17316,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19383:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19345:51:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17319,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19416:0:60"
            },
            "scope": 17874,
            "src": "19321:582:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17392,
              "nodeType": "Block",
              "src": "20022:116:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17380,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "20050:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17379,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20040:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17381,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20040:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17378,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20032:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20032:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17383,
                  "nodeType": "ExpressionStatement",
                  "src": "20032:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17390,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17384,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "20075:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17386,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17385,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17373,
                            "src": "20089:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20075:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17387,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "20075:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17388,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "20075:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17389,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17375,
                      "src": "20126:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20075:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17391,
                  "nodeType": "ExpressionStatement",
                  "src": "20075:56:60"
                }
              ]
            },
            "documentation": null,
            "id": 17393,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalDraftVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17373,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17393,
                  "src": "19954:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17372,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19954:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17375,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17393,
                  "src": "19983:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17374,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19983:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19944:58:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17377,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20022:0:60"
            },
            "scope": 17874,
            "src": "19909:229:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17421,
              "nodeType": "Block",
              "src": "20276:173:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 17404,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "20310:12:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17405,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "20324:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17406,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "20352:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 17407,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "20309:55:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 17403,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "20294:14:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 17408,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20294:71:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20286:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20286:80:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17410,
                  "nodeType": "ExpressionStatement",
                  "src": "20286:80:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17411,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "20377:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17413,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17412,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17395,
                              "src": "20391:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20377:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17414,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "20377:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17416,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17415,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17397,
                          "src": "20417:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20377:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17417,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "20377:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17418,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17399,
                      "src": "20437:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20377:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17420,
                  "nodeType": "ExpressionStatement",
                  "src": "20377:65:60"
                }
              ]
            },
            "documentation": null,
            "id": 17422,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17395,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20184:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17394,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20184:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17397,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20213:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20213:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17399,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20237:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17398,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20237:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20174:82:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20276:0:60"
            },
            "scope": 17874,
            "src": "20144:305:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17443,
              "nodeType": "Block",
              "src": "20539:130:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17431,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "20567:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17430,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20557:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20557:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20549:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17433,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20549:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17434,
                  "nodeType": "ExpressionStatement",
                  "src": "20549:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17435,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "20605:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17437,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17436,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17424,
                            "src": "20619:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20605:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17438,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "20605:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "20605:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17440,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17426,
                      "src": "20654:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20605:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17442,
                  "nodeType": "ExpressionStatement",
                  "src": "20605:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 17444,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setDraftVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17427,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17424,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17444,
                  "src": "20484:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20484:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17426,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 17444,
                  "src": "20505:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17425,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20505:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20483:36:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20539:0:60"
            },
            "scope": 17874,
            "src": "20455:214:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17469,
              "nodeType": "Block",
              "src": "20770:139:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17455,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "20798:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17454,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20788:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20788:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17453,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20780:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20780:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17458,
                  "nodeType": "ExpressionStatement",
                  "src": "20780:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17459,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "20836:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17461,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17460,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17446,
                              "src": "20850:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20836:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17462,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "20836:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17464,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17463,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17448,
                          "src": "20876:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20836:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17465,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "20836:55:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17466,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17450,
                      "src": "20894:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20836:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17468,
                  "nodeType": "ExpressionStatement",
                  "src": "20836:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 17470,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17446,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20699:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17445,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20699:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17448,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20720:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17447,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20720:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17450,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20736:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17449,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20736:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20698:52:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17452,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20770:0:60"
            },
            "scope": 17874,
            "src": "20675:234:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17493,
              "nodeType": "Block",
              "src": "21009:177:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 17479,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "21043:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17480,
                                "name": "CONTRACT_DAO_FUNDING_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1376,
                                "src": "21071:28:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17481,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "21101:12:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 17482,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "21042:72:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 17478,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "21027:14:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 17483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21027:88:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21019:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21019:97:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17485,
                  "nodeType": "ExpressionStatement",
                  "src": "21019:97:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17486,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "21126:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17488,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17487,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17472,
                          "src": "21140:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21126:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17489,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "collateralStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7965,
                      "src": "21126:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17490,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17474,
                      "src": "21172:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21126:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17492,
                  "nodeType": "ExpressionStatement",
                  "src": "21126:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 17494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalCollateralStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17472,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17494,
                  "src": "20952:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20952:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17474,
                  "name": "_status",
                  "nodeType": "VariableDeclaration",
                  "scope": 17494,
                  "src": "20973:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17473,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20973:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20951:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21009:0:60"
            },
            "scope": 17874,
            "src": "20915:271:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17514,
              "nodeType": "Block",
              "src": "21286:112:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17503,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "21314:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17502,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "21304:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21304:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17501,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21296:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21296:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17506,
                  "nodeType": "ExpressionStatement",
                  "src": "21296:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17507,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "21338:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17509,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17508,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17496,
                          "src": "21352:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21338:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17510,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "collateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7967,
                      "src": "21338:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17511,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17498,
                      "src": "21384:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21338:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17513,
                  "nodeType": "ExpressionStatement",
                  "src": "21338:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 17515,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalCollateralAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17496,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17515,
                  "src": "21229:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17495,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21229:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17498,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 17515,
                  "src": "21250:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17497,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21250:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21228:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17500,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21286:0:60"
            },
            "scope": 17874,
            "src": "21192:206:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17608,
              "nodeType": "Block",
              "src": "21555:708:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17528,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "21583:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17527,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "21573:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21573:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17526,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21565:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21565:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17531,
                  "nodeType": "ExpressionStatement",
                  "src": "21565:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17533,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "21615:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17535,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17534,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17517,
                              "src": "21629:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "21615:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17536,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "currentState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7949,
                          "src": "21615:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17537,
                          "name": "PROPOSAL_STATE_CLOSED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1313,
                          "src": "21658:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "21615:64:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17532,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21607:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21607:73:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17540,
                  "nodeType": "ExpressionStatement",
                  "src": "21607:73:60"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17544,
                      "name": "prlAction",
                      "nodeType": "VariableDeclaration",
                      "scope": 17609,
                      "src": "21691:37:60",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                        "typeString": "struct DaoStructs.PrlAction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17543,
                        "name": "DaoStructs.PrlAction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7905,
                        "src": "21691:20:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                          "typeString": "struct DaoStructs.PrlAction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17545,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21691:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17546,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21738:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17548,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7900,
                      "src": "21738:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17549,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17523,
                      "src": "21753:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21738:20:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17551,
                  "nodeType": "ExpressionStatement",
                  "src": "21738:20:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17552,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21768:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "doc",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7902,
                      "src": "21768:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17555,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17521,
                      "src": "21784:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21768:20:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17557,
                  "nodeType": "ExpressionStatement",
                  "src": "21768:20:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17558,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21798:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "actionId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7904,
                      "src": "21798:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17561,
                      "name": "_action",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17519,
                      "src": "21819:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21798:28:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17563,
                  "nodeType": "ExpressionStatement",
                  "src": "21798:28:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17569,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21879:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17564,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "21836:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17566,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17565,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17517,
                            "src": "21850:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "21836:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "prlActions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7972,
                        "src": "21836:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                          "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                        }
                      },
                      "id": 17568,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "21836:42:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PrlAction_$7905_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct DaoStructs.PrlAction storage ref) returns (uint256)"
                      }
                    },
                    "id": 17570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21836:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17571,
                  "nodeType": "ExpressionStatement",
                  "src": "21836:53:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 17572,
                      "name": "_action",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17519,
                      "src": "21904:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 17573,
                      "name": "PRL_ACTION_PAUSE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1322,
                      "src": "21915:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21904:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 17585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 17583,
                        "name": "_action",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17519,
                        "src": "22017:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 17584,
                        "name": "PRL_ACTION_UNPAUSE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1325,
                        "src": "22028:18:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "22017:29:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 17605,
                      "nodeType": "Block",
                      "src": "22129:128:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17599,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17594,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "22149:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17596,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17595,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17517,
                                  "src": "22163:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "22149:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17597,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "isPausedOrStopped",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7978,
                              "src": "22149:44:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 17598,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22196:4:60",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "22149:51:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17600,
                          "nodeType": "ExpressionStatement",
                          "src": "22149:51:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17602,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17517,
                                "src": "22234:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 17601,
                              "name": "closeProposalInternal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17643,
                              "src": "22212:21:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                                "typeString": "function (bytes32)"
                              }
                            },
                            "id": 17603,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "22212:34:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 17604,
                          "nodeType": "ExpressionStatement",
                          "src": "22212:34:60"
                        }
                      ]
                    },
                    "id": 17606,
                    "nodeType": "IfStatement",
                    "src": "22013:244:60",
                    "trueBody": {
                      "id": 17593,
                      "nodeType": "Block",
                      "src": "22048:75:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17591,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17586,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "22060:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17588,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17587,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17517,
                                  "src": "22074:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "22060:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17589,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "isPausedOrStopped",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7978,
                              "src": "22060:44:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 17590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22107:5:60",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "22060:52:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17592,
                          "nodeType": "ExpressionStatement",
                          "src": "22060:52:60"
                        }
                      ]
                    }
                  },
                  "id": 17607,
                  "nodeType": "IfStatement",
                  "src": "21900:357:60",
                  "trueBody": {
                    "id": 17582,
                    "nodeType": "Block",
                    "src": "21933:74:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17580,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17575,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "21945:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17577,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17576,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17517,
                                "src": "21959:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21945:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17578,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "isPausedOrStopped",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7978,
                            "src": "21945:44:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 17579,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "21992:4:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "21945:51:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17581,
                        "nodeType": "ExpressionStatement",
                        "src": "21945:51:60"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17609,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "updateProposalPRL",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17517,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21440:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17516,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21440:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17519,
                  "name": "_action",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21469:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17518,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17521,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21494:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17520,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21494:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17523,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21516:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17522,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21516:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21430:105:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21555:0:60"
            },
            "scope": 17874,
            "src": "21404:859:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17642,
              "nodeType": "Block",
              "src": "22342:288:60",
              "statements": [
                {
                  "assignments": [
                    17615
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17615,
                      "name": "_currentState",
                      "nodeType": "VariableDeclaration",
                      "scope": 17643,
                      "src": "22352:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17614,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "22352:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17620,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17616,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "22376:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17618,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17617,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22390:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22376:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17619,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "currentState",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7949,
                    "src": "22376:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22352:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17625,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22469:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17621,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "22425:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17623,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17622,
                          "name": "_currentState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17615,
                          "src": "22442:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22425:31:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17624,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "22425:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22425:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17627,
                  "nodeType": "ExpressionStatement",
                  "src": "22425:56:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17632,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22538:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17628,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "22491:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17630,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17629,
                          "name": "PROPOSAL_STATE_CLOSED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1313,
                          "src": "22508:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22491:39:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17631,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "22491:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22491:59:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17634,
                  "nodeType": "ExpressionStatement",
                  "src": "22491:59:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17635,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "22560:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17637,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17636,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17611,
                          "src": "22574:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22560:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17638,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "22560:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17639,
                      "name": "PROPOSAL_STATE_CLOSED",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1313,
                      "src": "22602:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "22560:63:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17641,
                  "nodeType": "ExpressionStatement",
                  "src": "22560:63:60"
                }
              ]
            },
            "documentation": null,
            "id": 17643,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "closeProposalInternal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17612,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17611,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17643,
                  "src": "22300:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17610,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22300:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22299:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17613,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22342:0:60"
            },
            "scope": 17874,
            "src": "22269:361:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17730,
              "nodeType": "Block",
              "src": "22781:653:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17656,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "22809:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17655,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "22799:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "22799:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17654,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "22791:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22791:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17659,
                  "nodeType": "ExpressionStatement",
                  "src": "22791:39:60"
                },
                {
                  "assignments": [
                    17663
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17663,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 17731,
                      "src": "22841:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17662,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "22841:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17667,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 17664,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "22881:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 17666,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 17665,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17645,
                      "src": "22895:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22881:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22841:66:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17668,
                    "name": "_vote",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17649,
                    "src": "22921:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17728,
                    "nodeType": "Block",
                    "src": "23220:208:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17707,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17699,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23234:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17703,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23234:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17704,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "23234:29:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17705,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17702,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23264:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "23234:37:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17706,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17651,
                            "src": "23274:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "23234:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17708,
                        "nodeType": "ExpressionStatement",
                        "src": "23234:47:60"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 17715,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17709,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23299:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17710,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23299:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17711,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "23299:30:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17713,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17712,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23330:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23299:38:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 17714,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "23340:1:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "23299:42:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 17727,
                        "nodeType": "IfStatement",
                        "src": "23295:123:60",
                        "trueBody": {
                          "id": 17726,
                          "nodeType": "Block",
                          "src": "23343:75:60",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 17724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 17716,
                                        "name": "_proposal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17663,
                                        "src": "23361:9:60",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                          "typeString": "struct DaoStructs.Proposal storage pointer"
                                        }
                                      },
                                      "id": 17720,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "draftVoting",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7959,
                                      "src": "23361:21:60",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                        "typeString": "struct DaoStructs.Voting storage ref"
                                      }
                                    },
                                    "id": 17721,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "yesVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7919,
                                    "src": "23361:30:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 17722,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17719,
                                    "name": "_voter",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17647,
                                    "src": "23392:6:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "23361:38:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 17723,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23402:1:60",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "23361:42:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 17725,
                              "nodeType": "ExpressionStatement",
                              "src": "23361:42:60"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "id": 17729,
                  "nodeType": "IfStatement",
                  "src": "22917:511:60",
                  "trueBody": {
                    "id": 17698,
                    "nodeType": "Block",
                    "src": "22928:286:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17677,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17669,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "22942:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17673,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "22942:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17674,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "22942:30:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17675,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17672,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "22973:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "22942:38:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17676,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17651,
                            "src": "22983:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "22942:48:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17678,
                        "nodeType": "ExpressionStatement",
                        "src": "22942:48:60"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 17685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17679,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23008:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17680,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23008:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17681,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "23008:29:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17683,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17682,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23038:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23008:37:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 17684,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "23048:1:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "23008:41:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 17697,
                        "nodeType": "IfStatement",
                        "src": "23004:200:60",
                        "trueBody": {
                          "id": 17696,
                          "nodeType": "Block",
                          "src": "23051:153:60",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 17694,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 17686,
                                        "name": "_proposal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17663,
                                        "src": "23148:9:60",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                          "typeString": "struct DaoStructs.Proposal storage pointer"
                                        }
                                      },
                                      "id": 17690,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "draftVoting",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7959,
                                      "src": "23148:21:60",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                        "typeString": "struct DaoStructs.Voting storage ref"
                                      }
                                    },
                                    "id": 17691,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "noVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7923,
                                    "src": "23148:29:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 17692,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17689,
                                    "name": "_voter",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17647,
                                    "src": "23178:6:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "23148:37:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 17693,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23188:1:60",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "23148:41:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 17695,
                              "nodeType": "ExpressionStatement",
                              "src": "23148:41:60"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17731,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addDraftVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17645,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22667:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17644,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22667:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17647,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22696:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17646,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22696:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17649,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22720:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17648,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22720:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17651,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22740:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17650,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22740:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22657:104:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17653,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22781:0:60"
            },
            "scope": 17874,
            "src": "22636:798:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17760,
              "nodeType": "Block",
              "src": "23585:138:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17744,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "23613:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17743,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "23603:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23603:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17742,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "23595:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23595:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17747,
                  "nodeType": "ExpressionStatement",
                  "src": "23595:39:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17748,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "23645:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17750,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17749,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17733,
                                "src": "23659:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23645:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17751,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "votingRounds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7963,
                            "src": "23645:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                              "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                            }
                          },
                          "id": 17753,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17752,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17739,
                            "src": "23685:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23645:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 17754,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "23645:55:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 17756,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17755,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17737,
                        "src": "23701:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "23645:63:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17757,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17735,
                      "src": "23711:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23645:71:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17759,
                  "nodeType": "ExpressionStatement",
                  "src": "23645:71:60"
                }
              ]
            },
            "documentation": null,
            "id": 17761,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "commitVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17733,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23469:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17732,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23469:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17735,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23498:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23498:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17737,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23521:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17736,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23521:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17739,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23545:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23545:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23459:106:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17741,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23585:0:60"
            },
            "scope": 17874,
            "src": "23440:283:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17792,
              "nodeType": "Block",
              "src": "23896:149:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17776,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "23924:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17775,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "23914:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23914:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17774,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "23906:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23906:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17779,
                  "nodeType": "ExpressionStatement",
                  "src": "23906:39:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17787,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17765,
                        "src": "24015:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17788,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17767,
                        "src": "24023:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17789,
                        "name": "_weight",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17769,
                        "src": "24030:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17780,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "23956:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17782,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17781,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17763,
                              "src": "23970:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23956:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17783,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "23956:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17785,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17784,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17771,
                          "src": "23996:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23956:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revealVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8238,
                      "src": "23956:58:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address,bool,uint256)"
                      }
                    },
                    "id": 17790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23956:82:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17791,
                  "nodeType": "ExpressionStatement",
                  "src": "23956:82:60"
                }
              ]
            },
            "documentation": null,
            "id": 17793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17763,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23758:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17762,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23758:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17765,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23787:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17764,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23787:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17767,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23811:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17766,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23811:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17769,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23831:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23831:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17771,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23856:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17770,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23856:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23748:128:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17773,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23896:0:60"
            },
            "scope": 17874,
            "src": "23729:316:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17808,
              "nodeType": "Block",
              "src": "24114:93:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17800,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "24142:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17799,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24132:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24132:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17798,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24124:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24124:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17803,
                  "nodeType": "ExpressionStatement",
                  "src": "24124:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17805,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17795,
                        "src": "24188:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 17804,
                      "name": "closeProposalInternal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17643,
                      "src": "24166:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 17806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24166:34:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17807,
                  "nodeType": "ExpressionStatement",
                  "src": "24166:34:60"
                }
              ]
            },
            "documentation": null,
            "id": 17809,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "closeProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17796,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17795,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17809,
                  "src": "24074:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17794,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24074:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24073:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17797,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24114:0:60"
            },
            "scope": 17874,
            "src": "24051:156:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17848,
              "nodeType": "Block",
              "src": "24278:348:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17816,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "24306:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17815,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24296:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17817,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24296:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17814,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24288:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24288:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17819,
                  "nodeType": "ExpressionStatement",
                  "src": "24288:46:60"
                },
                {
                  "assignments": [
                    17821
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17821,
                      "name": "_currentState",
                      "nodeType": "VariableDeclaration",
                      "scope": 17849,
                      "src": "24344:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17820,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "24344:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17826,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17822,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "24368:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17824,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17823,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24382:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24368:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17825,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "currentState",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7949,
                    "src": "24368:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24344:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17831,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24461:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17827,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "24417:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17829,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17828,
                          "name": "_currentState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17821,
                          "src": "24434:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24417:31:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17830,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "24417:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24417:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17833,
                  "nodeType": "ExpressionStatement",
                  "src": "24417:56:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17838,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24532:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17834,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "24483:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17836,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17835,
                          "name": "PROPOSAL_STATE_ARCHIVED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1316,
                          "src": "24500:23:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24483:41:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17837,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "24483:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24483:61:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17840,
                  "nodeType": "ExpressionStatement",
                  "src": "24483:61:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17841,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "24554:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17843,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17842,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17811,
                          "src": "24568:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24554:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17844,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "24554:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17845,
                      "name": "PROPOSAL_STATE_ARCHIVED",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1316,
                      "src": "24596:23:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24554:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17847,
                  "nodeType": "ExpressionStatement",
                  "src": "24554:65:60"
                }
              ]
            },
            "documentation": null,
            "id": 17849,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "archiveProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17811,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17849,
                  "src": "24238:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17810,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24238:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24237:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17813,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24278:0:60"
            },
            "scope": 17874,
            "src": "24213:413:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17872,
              "nodeType": "Block",
              "src": "24722:142:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17858,
                            "name": "CONTRACT_DAO_FUNDING_MANAGER",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "24750:28:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17857,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24740:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24740:39:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17856,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24732:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24732:48:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17861,
                  "nodeType": "ExpressionStatement",
                  "src": "24732:48:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17862,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "24790:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17863,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17851,
                              "src": "24804:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "24790:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17865,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "24790:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17867,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17866,
                          "name": "_milestoneId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17853,
                          "src": "24830:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24790:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17868,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "funded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7929,
                      "src": "24790:60:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 17869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24853:4:60",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "24790:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17871,
                  "nodeType": "ExpressionStatement",
                  "src": "24790:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 17873,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setMilestoneFunded",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17851,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17873,
                  "src": "24660:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17850,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24660:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17853,
                  "name": "_milestoneId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17873,
                  "src": "24681:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17852,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24681:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24659:43:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17855,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24722:0:60"
            },
            "scope": 17874,
            "src": "24632:232:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 17875,
        "src": "299:24567:60"
      }
    ],
    "src": "0:24867:60"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
    "exportedSymbols": {
      "DaoStorage": [
        17874
      ]
    },
    "id": 17875,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 16028,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:60"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/abstract/BytesIteratorStorage.sol",
        "file": "@digix/solidity-collections/contracts/abstract/BytesIteratorStorage.sol",
        "id": 16029,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 22050,
        "src": "26:81:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 16030,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 25117,
        "src": "108:72:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoWhitelistingCommon.sol",
        "file": "../common/DaoWhitelistingCommon.sol",
        "id": 16031,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 1869,
        "src": "181:45:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "../lib/DaoStructs.sol",
        "id": 16032,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 8452,
        "src": "227:31:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoWhitelistingStorage.sol",
        "file": "./DaoWhitelistingStorage.sol",
        "id": 16033,
        "nodeType": "ImportDirective",
        "scope": 17875,
        "sourceUnit": 18011,
        "src": "259:38:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 16034,
              "name": "DaoWhitelistingCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1868,
              "src": "322:21:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoWhitelistingCommon_$1868",
                "typeString": "contract DaoWhitelistingCommon"
              }
            },
            "id": 16035,
            "nodeType": "InheritanceSpecifier",
            "src": "322:21:60"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 16036,
              "name": "BytesIteratorStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22049,
              "src": "345:20:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BytesIteratorStorage_$22049",
                "typeString": "contract BytesIteratorStorage"
              }
            },
            "id": 16037,
            "nodeType": "InheritanceSpecifier",
            "src": "345:20:60"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          18628,
          22049
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 17874,
        "linearizedBaseContracts": [
          17874,
          22049,
          1868,
          1629,
          18628
        ],
        "name": "DaoStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 16040,
            "libraryName": {
              "contractScope": null,
              "id": 16038,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "378:16:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "372:50:60",
            "typeName": {
              "contractScope": null,
              "id": 16039,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "399:22:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 16043,
            "libraryName": {
              "contractScope": null,
              "id": 16041,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "433:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "427:39:60",
            "typeName": {
              "contractScope": null,
              "id": 16042,
              "name": "DaoStructs.Voting",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7930,
              "src": "448:17:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                "typeString": "struct DaoStructs.Voting"
              }
            }
          },
          {
            "id": 16046,
            "libraryName": {
              "contractScope": null,
              "id": 16044,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "477:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "471:41:60",
            "typeName": {
              "contractScope": null,
              "id": 16045,
              "name": "DaoStructs.Proposal",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7981,
              "src": "492:19:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                "typeString": "struct DaoStructs.Proposal"
              }
            }
          },
          {
            "id": 16049,
            "libraryName": {
              "contractScope": null,
              "id": 16047,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "523:10:60",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "517:48:60",
            "typeName": {
              "contractScope": null,
              "id": 16048,
              "name": "DaoStructs.ProposalVersion",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7945,
              "src": "538:26:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                "typeString": "struct DaoStructs.ProposalVersion"
              }
            }
          },
          {
            "constant": false,
            "id": 16051,
            "name": "allProposals",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "629:35:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_struct$_Bytes_$22605_storage",
              "typeString": "struct DoublyLinkedList.Bytes"
            },
            "typeName": {
              "contractScope": null,
              "id": 16050,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "629:22:60",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16055,
            "name": "proposalsById",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "794:54:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal)"
            },
            "typeName": {
              "id": 16054,
              "keyType": {
                "id": 16052,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "803:7:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "794:40:60",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal)"
              },
              "valueType": {
                "contractScope": null,
                "id": 16053,
                "name": "DaoStructs.Proposal",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 7981,
                "src": "814:19:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                  "typeString": "struct DaoStructs.Proposal"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 16059,
            "name": "proposalsByState",
            "nodeType": "VariableDeclaration",
            "scope": 17874,
            "src": "1081:60:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes)"
            },
            "typeName": {
              "id": 16058,
              "keyType": {
                "id": 16056,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "1090:7:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "1081:43:60",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes)"
              },
              "valueType": {
                "contractScope": null,
                "id": 16057,
                "name": "DoublyLinkedList.Bytes",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 22605,
                "src": "1101:22:60",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Bytes"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 16071,
              "nodeType": "Block",
              "src": "1186:63:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 16066,
                            "name": "CONTRACT_STORAGE_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1397,
                            "src": "1209:20:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 16067,
                            "name": "_resolver",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16061,
                            "src": "1231:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 16065,
                          "name": "init",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18596,
                          "src": "1204:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
                            "typeString": "function (bytes32,address) returns (bool)"
                          }
                        },
                        "id": 16068,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1204:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16064,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "1196:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16069,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1196:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16070,
                  "nodeType": "ExpressionStatement",
                  "src": "1196:46:60"
                }
              ]
            },
            "documentation": null,
            "id": 16072,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16061,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 16072,
                  "src": "1160:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16060,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1160:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1159:19:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16063,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1186:0:60"
            },
            "scope": 17874,
            "src": "1148:101:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16164,
              "nodeType": "Block",
              "src": "2668:640:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16098,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "2686:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16099,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2686:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16097,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "2678:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2678:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16101,
                  "nodeType": "ExpressionStatement",
                  "src": "2678:32:60"
                },
                {
                  "assignments": [
                    16105
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16105,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16165,
                      "src": "2720:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16104,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "2720:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16109,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16106,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "2760:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16108,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16107,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16074,
                      "src": "2774:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2760:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2720:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16113,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16110,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16077,
                      "src": "2796:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16111,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2803:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16112,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7947,
                      "src": "2803:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2796:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16114,
                  "nodeType": "ExpressionStatement",
                  "src": "2796:27:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16115,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16079,
                      "src": "2833:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16116,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2845:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16117,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "2845:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2833:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16119,
                  "nodeType": "ExpressionStatement",
                  "src": "2833:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16120,
                      "name": "_endorser",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16081,
                      "src": "2873:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16121,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2885:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16122,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "endorser",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7976,
                      "src": "2885:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2873:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16124,
                  "nodeType": "ExpressionStatement",
                  "src": "2873:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16125,
                      "name": "_state",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16083,
                      "src": "2913:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16126,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2922:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16127,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "2922:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "2913:31:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16129,
                  "nodeType": "ExpressionStatement",
                  "src": "2913:31:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16133,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16130,
                      "name": "_timeCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16085,
                      "src": "2954:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16131,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "2969:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16132,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7951,
                      "src": "2969:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2954:36:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16134,
                  "nodeType": "ExpressionStatement",
                  "src": "2954:36:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16135,
                      "name": "_nVersions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16087,
                      "src": "3000:10:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16137,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16105,
                            "src": "3035:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16138,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "3035:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16136,
                        "name": "read_total_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22048,
                        "src": "3013:21:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_uint256_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (uint256)"
                        }
                      },
                      "id": 16139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3013:52:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3000:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16141,
                  "nodeType": "ExpressionStatement",
                  "src": "3000:65:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16142,
                      "name": "_latestVersionDoc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16089,
                      "src": "3075:17:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16144,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16105,
                            "src": "3121:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16145,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "3121:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16143,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "3095:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3095:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3075:76:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16148,
                  "nodeType": "ExpressionStatement",
                  "src": "3075:76:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16149,
                      "name": "_finalVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16091,
                      "src": "3161:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16150,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3177:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16151,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7969,
                      "src": "3177:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3161:38:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16153,
                  "nodeType": "ExpressionStatement",
                  "src": "3161:38:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16157,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16154,
                      "name": "_pausedOrStopped",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16093,
                      "src": "3209:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16155,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3228:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16156,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isPausedOrStopped",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7978,
                      "src": "3228:27:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3209:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16158,
                  "nodeType": "ExpressionStatement",
                  "src": "3209:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16162,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16159,
                      "name": "_isDigixProposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16095,
                      "src": "3265:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 16160,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16105,
                        "src": "3284:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 16161,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "isDigix",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7980,
                      "src": "3284:17:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "3265:36:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16163,
                  "nodeType": "ExpressionStatement",
                  "src": "3265:36:60"
                }
              ]
            },
            "documentation": "//////////////////////////// READ FUNCTIONS //////////////////////////////\n @notice read all information and details of proposal\n @param _proposalId Proposal ID, i.e. hash of IPFS doc Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_doc\": \"Original IPFS doc of proposal, also ID of proposal\",\n   \"_proposer\": \"Address of the proposer\",\n   \"_endorser\": \"Address of the moderator that endorsed the proposal\",\n   \"_state\": \"Current state of the proposal\",\n   \"_timeCreated\": \"UTC timestamp at which proposal was created\",\n   \"_nVersions\": \"Number of versions of the proposal\",\n   \"_latestVersionDoc\": \"IPFS doc hash of the latest version of this proposal\",\n   \"_finalVersion\": \"If finalized, the version of the final proposal\",\n   \"_pausedOrStopped\": \"If the proposal is paused/stopped at the moment\",\n   \"_isDigixProposal\": \"If the proposal has been created by founder or not\"\n }",
            "id": 16165,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16075,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16074,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2262:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16073,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2262:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2261:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16077,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2341:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2341:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16079,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2367:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16078,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2367:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16081,
                  "name": "_endorser",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2398:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16080,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2398:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16083,
                  "name": "_state",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2429:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16082,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2429:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16085,
                  "name": "_timeCreated",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2457:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16084,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2457:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16087,
                  "name": "_nVersions",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2491:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16086,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2491:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16089,
                  "name": "_latestVersionDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2523:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16088,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2523:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16091,
                  "name": "_finalVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2562:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16090,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2562:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16093,
                  "name": "_pausedOrStopped",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2597:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16092,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2597:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16095,
                  "name": "_isDigixProposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 16165,
                  "src": "2632:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16094,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2632:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2327:336:60"
            },
            "scope": 17874,
            "src": "2240:1068:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16179,
              "nodeType": "Block",
              "src": "3433:64:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16172,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16170,
                      "src": "3443:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16173,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "3455:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16175,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16174,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16167,
                          "src": "3469:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "3455:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16176,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "3455:35:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "3443:47:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 16178,
                  "nodeType": "ExpressionStatement",
                  "src": "3443:47:60"
                }
              ]
            },
            "documentation": null,
            "id": 16180,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalProposer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16167,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16180,
                  "src": "3344:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16166,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3344:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3343:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16170,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 16180,
                  "src": "3410:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16169,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3410:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3409:19:60"
            },
            "scope": 17874,
            "src": "3314:183:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16195,
              "nodeType": "Block",
              "src": "3619:71:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16193,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16187,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16185,
                      "src": "3629:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16188,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "3639:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16190,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16189,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16182,
                            "src": "3653:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3639:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16191,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "prlActions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7972,
                        "src": "3639:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                          "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                        }
                      },
                      "id": 16192,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3639:44:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3629:54:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16194,
                  "nodeType": "ExpressionStatement",
                  "src": "3629:54:60"
                }
              ]
            },
            "documentation": null,
            "id": 16196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readTotalPrlActions",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16183,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16182,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16196,
                  "src": "3532:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16181,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3532:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3531:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16186,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16185,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 16196,
                  "src": "3598:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16184,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3598:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3597:17:60"
            },
            "scope": 17874,
            "src": "3503:187:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16247,
              "nodeType": "Block",
              "src": "3853:259:60",
              "statements": [
                {
                  "assignments": [
                    16213
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16213,
                      "name": "_actions",
                      "nodeType": "VariableDeclaration",
                      "scope": 16248,
                      "src": "3863:38:60",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                        "typeString": "struct DaoStructs.PrlAction[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 16211,
                          "name": "DaoStructs.PrlAction",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 7905,
                          "src": "3863:20:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                            "typeString": "struct DaoStructs.PrlAction"
                          }
                        },
                        "id": 16212,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "3863:22:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                          "typeString": "struct DaoStructs.PrlAction[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16218,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16214,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "3904:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16216,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16215,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16198,
                        "src": "3918:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3904:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16217,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "prlActions",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7972,
                    "src": "3904:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                      "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3863:78:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 16223,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16220,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "3959:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16221,
                            "name": "_actions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16213,
                            "src": "3968:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                              "typeString": "struct DaoStructs.PrlAction memory[] memory"
                            }
                          },
                          "id": 16222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3968:15:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3959:24:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16219,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3951:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3951:33:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16225,
                  "nodeType": "ExpressionStatement",
                  "src": "3951:33:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16226,
                      "name": "_actionId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16203,
                      "src": "3994:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16227,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4006:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16229,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16228,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4015:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4006:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16230,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "actionId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7904,
                      "src": "4006:25:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3994:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16232,
                  "nodeType": "ExpressionStatement",
                  "src": "3994:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16233,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16205,
                      "src": "4041:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16234,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4049:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16236,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16235,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4058:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4049:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16237,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7900,
                      "src": "4049:19:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4041:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16239,
                  "nodeType": "ExpressionStatement",
                  "src": "4041:27:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16240,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16207,
                      "src": "4078:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16241,
                          "name": "_actions",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16213,
                          "src": "4085:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_memory_$dyn_memory_ptr",
                            "typeString": "struct DaoStructs.PrlAction memory[] memory"
                          }
                        },
                        "id": 16243,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16242,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16200,
                          "src": "4094:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4085:16:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 16244,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "doc",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7902,
                      "src": "4085:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "4078:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16246,
                  "nodeType": "ExpressionStatement",
                  "src": "4078:27:60"
                }
              ]
            },
            "documentation": null,
            "id": 16248,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readPrlAction",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16201,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16198,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3719:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16197,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3719:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16200,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3740:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16199,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3740:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3718:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16208,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16203,
                  "name": "_actionId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3801:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16202,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16205,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3820:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16204,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3820:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16207,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16248,
                  "src": "3835:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16206,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3835:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3800:48:60"
            },
            "scope": 17874,
            "src": "3696:416:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16268,
              "nodeType": "Block",
              "src": "4241:114:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16256,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4259:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16257,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4259:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16255,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4251:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4251:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16259,
                  "nodeType": "ExpressionStatement",
                  "src": "4251:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16266,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16260,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16253,
                      "src": "4293:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16261,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "4303:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16263,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16262,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16250,
                            "src": "4317:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4303:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16264,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "4303:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16265,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4303:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4293:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16267,
                  "nodeType": "ExpressionStatement",
                  "src": "4293:55:60"
                }
              ]
            },
            "documentation": null,
            "id": 16269,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDraftVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16250,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16269,
                  "src": "4157:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16249,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4157:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4156:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16253,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 16269,
                  "src": "4223:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16252,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4223:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4222:14:60"
            },
            "scope": 17874,
            "src": "4118:237:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16293,
              "nodeType": "Block",
              "src": "4495:123:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16279,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4513:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16280,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4513:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16278,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4505:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16281,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4505:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16282,
                  "nodeType": "ExpressionStatement",
                  "src": "4505:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16291,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16283,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16276,
                      "src": "4547:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16284,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "4557:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16286,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16285,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16271,
                              "src": "4571:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4557:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16287,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "4557:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16289,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16288,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16273,
                          "src": "4597:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4557:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16290,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "4557:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4547:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16292,
                  "nodeType": "ExpressionStatement",
                  "src": "4547:64:60"
                }
              ]
            },
            "documentation": null,
            "id": 16294,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVotingResult",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16271,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4395:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16270,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4395:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16273,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4416:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16272,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4416:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4394:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16276,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 16294,
                  "src": "4477:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16275,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4477:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4476:14:60"
            },
            "scope": 17874,
            "src": "4361:257:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16314,
              "nodeType": "Block",
              "src": "4747:116:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16302,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "4765:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4765:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16301,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4757:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4757:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16305,
                  "nodeType": "ExpressionStatement",
                  "src": "4757:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16306,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16299,
                      "src": "4799:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16307,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "4808:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16309,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16308,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16296,
                            "src": "4822:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "4808:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16310,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "4808:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16311,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "4808:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4799:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16313,
                  "nodeType": "ExpressionStatement",
                  "src": "4799:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 16315,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDraftVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16296,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16315,
                  "src": "4661:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16295,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4660:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16300,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16299,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 16315,
                  "src": "4727:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4727:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4726:16:60"
            },
            "scope": 17874,
            "src": "4624:239:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16339,
              "nodeType": "Block",
              "src": "5003:125:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16325,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5021:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16326,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5021:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16324,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5013:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5013:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16328,
                  "nodeType": "ExpressionStatement",
                  "src": "5013:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16337,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16329,
                      "name": "_start",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16322,
                      "src": "5055:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16330,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5064:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16332,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16331,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16317,
                              "src": "5078:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5064:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16333,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5064:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16335,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16334,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16319,
                          "src": "5104:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5064:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16336,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "5064:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5055:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16338,
                  "nodeType": "ExpressionStatement",
                  "src": "5055:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 16340,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16317,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4901:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16316,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4901:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16319,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4922:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16318,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4922:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4900:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16322,
                  "name": "_start",
                  "nodeType": "VariableDeclaration",
                  "scope": 16340,
                  "src": "4983:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16321,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4983:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4982:16:60"
            },
            "scope": 17874,
            "src": "4869:259:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16365,
              "nodeType": "Block",
              "src": "5289:126:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16353,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5307:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5307:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16352,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5299:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16355,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5299:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16356,
                  "nodeType": "ExpressionStatement",
                  "src": "5299:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16362,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16345,
                        "src": "5398:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16357,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "5348:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16359,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16358,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16342,
                            "src": "5362:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5348:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16360,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "5348:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16361,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "5348:49:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 16363,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5348:60:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 16351,
                  "id": 16364,
                  "nodeType": "Return",
                  "src": "5341:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 16366,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readDraftVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16342,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5164:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16341,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5164:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16345,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5185:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16343,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5185:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16344,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5185:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5163:42:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16351,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16348,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5253:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16347,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5253:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16350,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 16366,
                  "src": "5267:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16349,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5267:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5252:32:60"
            },
            "scope": 17874,
            "src": "5134:281:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16395,
              "nodeType": "Block",
              "src": "5587:135:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16381,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5605:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5605:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16380,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5597:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16383,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5597:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16384,
                  "nodeType": "ExpressionStatement",
                  "src": "5597:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16392,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16373,
                        "src": "5705:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16385,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5646:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16387,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16386,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16368,
                              "src": "5660:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5646:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16388,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5646:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16390,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16389,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16370,
                          "src": "5686:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5646:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16391,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "countVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8055,
                      "src": "5646:58:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory) view returns (uint256,uint256)"
                      }
                    },
                    "id": 16393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5646:69:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 16379,
                  "id": 16394,
                  "nodeType": "Return",
                  "src": "5639:76:60"
                }
              ]
            },
            "documentation": null,
            "id": 16396,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16374,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16368,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5446:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16367,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5446:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16370,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5467:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16369,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5467:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16373,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5483:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16371,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5483:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16372,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5483:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5445:58:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16376,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5551:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16375,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5551:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16378,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 16396,
                  "src": "5565:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16377,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5565:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5550:32:60"
            },
            "scope": 17874,
            "src": "5421:301:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16429,
              "nodeType": "Block",
              "src": "5922:141:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16414,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "5940:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5940:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16413,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "5932:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5932:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16417,
                  "nodeType": "ExpressionStatement",
                  "src": "5932:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16425,
                        "name": "_allUsers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16403,
                        "src": "6039:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 16426,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16405,
                        "src": "6050:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16418,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "5981:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16420,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16419,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16398,
                              "src": "5995:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5981:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16421,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "5981:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16423,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16422,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16400,
                          "src": "6021:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "5981:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16424,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "listVotes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8163,
                      "src": "5981:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address[] memory,bool) view returns (address[] memory,uint256)"
                      }
                    },
                    "id": 16427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5981:75:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$",
                      "typeString": "tuple(address[] memory,uint256)"
                    }
                  },
                  "functionReturnParameters": 16412,
                  "id": 16428,
                  "nodeType": "Return",
                  "src": "5974:82:60"
                }
              ]
            },
            "documentation": null,
            "id": 16430,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVotingRoundVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16406,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16398,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5758:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16397,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5758:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16400,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5779:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5779:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16403,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5795:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16401,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5795:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16402,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5795:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16405,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5816:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16404,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5816:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5757:70:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16409,
                  "name": "_voters",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5875:24:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16407,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5875:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 16408,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5875:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16411,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 16430,
                  "src": "5901:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16410,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5901:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5874:43:60"
            },
            "scope": 17874,
            "src": "5728:335:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 16454,
              "nodeType": "Block",
              "src": "6207:121:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16442,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "6225:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6225:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16441,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6217:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6217:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16445,
                  "nodeType": "ExpressionStatement",
                  "src": "6217:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16451,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16434,
                        "src": "6314:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16446,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "6266:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16448,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16447,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16432,
                            "src": "6280:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6266:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16449,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "6266:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16450,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "6266:47:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 16452,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6266:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 16440,
                  "id": 16453,
                  "nodeType": "Return",
                  "src": "6259:62:60"
                }
              ]
            },
            "documentation": null,
            "id": 16455,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readDraftVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16435,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16432,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6092:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16431,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6092:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16434,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6113:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16433,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6113:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6091:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16437,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6174:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16436,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6174:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16439,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 16455,
                  "src": "6186:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6186:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6173:29:60"
            },
            "scope": 17874,
            "src": "6069:259:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16483,
              "nodeType": "Block",
              "src": "6696:136:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16467,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "6714:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16468,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6714:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16466,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6706:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16469,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6706:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16470,
                  "nodeType": "ExpressionStatement",
                  "src": "6706:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16471,
                      "name": "_commitHash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16464,
                      "src": "6748:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 16472,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "6762:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 16474,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 16473,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16457,
                                "src": "6776:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6762:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 16475,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "votingRounds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7963,
                            "src": "6762:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                              "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                            }
                          },
                          "id": 16477,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16476,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16459,
                            "src": "6802:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "6762:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 16478,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "6762:55:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 16480,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16479,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16461,
                        "src": "6818:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "6762:63:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "6748:77:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16482,
                  "nodeType": "ExpressionStatement",
                  "src": "6748:77:60"
                }
              ]
            },
            "documentation": "@notice returns the latest committed vote by a voter on a proposal\n @param _proposalId proposal ID\n @param _voter address of the voter\n @return {\n   \"_commitHash\": \"\"\n }",
            "id": 16484,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readComittedVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16457,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6573:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16456,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6573:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16459,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6594:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16458,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6594:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16461,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6610:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16460,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6610:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6572:53:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16464,
                  "name": "_commitHash",
                  "nodeType": "VariableDeclaration",
                  "scope": 16484,
                  "src": "6671:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16463,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6671:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6670:21:60"
            },
            "scope": 17874,
            "src": "6547:285:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16512,
              "nodeType": "Block",
              "src": "6987:130:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16498,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "7005:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7005:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16497,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "6997:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6997:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16501,
                  "nodeType": "ExpressionStatement",
                  "src": "6997:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 16509,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16490,
                        "src": "7103:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16502,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "7046:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16504,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16503,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16486,
                              "src": "7060:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7046:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16505,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "7046:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16507,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16506,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16488,
                          "src": "7086:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "7046:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16508,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8206,
                      "src": "7046:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$returns$_t_bool_$_t_uint256_$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address) view returns (bool,uint256)"
                      }
                    },
                    "id": 16510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7046:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
                      "typeString": "tuple(bool,uint256)"
                    }
                  },
                  "functionReturnParameters": 16496,
                  "id": 16511,
                  "nodeType": "Return",
                  "src": "7039:71:60"
                }
              ]
            },
            "documentation": null,
            "id": 16513,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16491,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16486,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6856:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16485,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6856:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16488,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6877:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16487,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6877:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16490,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6893:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16489,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6893:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6855:53:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16496,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16493,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6954:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16492,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6954:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16495,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 16513,
                  "src": "6966:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16494,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6966:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6953:29:60"
            },
            "scope": 17874,
            "src": "6838:279:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16524,
              "nodeType": "Block",
              "src": "7330:63:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16522,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16518,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16516,
                      "src": "7340:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16520,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "7373:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16519,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "7346:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16521,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7346:40:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7340:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16523,
                  "nodeType": "ExpressionStatement",
                  "src": "7340:46:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the first proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16525,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16514,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7265:2:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16516,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16525,
                  "src": "7313:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16515,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7313:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7312:13:60"
            },
            "scope": 17874,
            "src": "7240:153:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16536,
              "nodeType": "Block",
              "src": "7604:62:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16534,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16530,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16528,
                      "src": "7614:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16532,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "7646:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16531,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "7620:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16533,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7620:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7614:45:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16535,
                  "nodeType": "ExpressionStatement",
                  "src": "7614:45:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the last proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16537,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16526,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7539:2:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16528,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16537,
                  "src": "7587:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7587:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7586:13:60"
            },
            "scope": 17874,
            "src": "7515:151:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16551,
              "nodeType": "Block",
              "src": "7969:109:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16549,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16544,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16542,
                      "src": "7979:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16546,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "8024:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16547,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16539,
                          "src": "8050:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16545,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "7985:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16548,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7985:86:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7979:92:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16550,
                  "nodeType": "ExpressionStatement",
                  "src": "7979:92:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of proposal next to _proposalId\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_id\": \"\"\n }",
            "id": 16552,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16540,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16539,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16552,
                  "src": "7886:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16538,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7886:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7885:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16542,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16552,
                  "src": "7952:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16541,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7952:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7951:13:60"
            },
            "scope": 17874,
            "src": "7861:217:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16566,
              "nodeType": "Block",
              "src": "8389:113:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16564,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16559,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16557,
                      "src": "8399:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16561,
                          "name": "allProposals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16051,
                          "src": "8448:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16562,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16554,
                          "src": "8474:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16560,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "8405:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16563,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8405:90:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8399:96:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16565,
                  "nodeType": "ExpressionStatement",
                  "src": "8399:96:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of proposal previous to _proposalId\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_id\": \"\"\n }",
            "id": 16567,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16555,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16554,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16567,
                  "src": "8306:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16553,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8306:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8305:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16557,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16567,
                  "src": "8372:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16556,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8372:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8371:13:60"
            },
            "scope": 17874,
            "src": "8277:225:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16587,
              "nodeType": "Block",
              "src": "8805:119:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16575,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "8823:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16576,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8823:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16574,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8815:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16577,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8815:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16578,
                  "nodeType": "ExpressionStatement",
                  "src": "8815:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16585,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16579,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16572,
                      "src": "8857:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16581,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "8890:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16583,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16582,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16569,
                            "src": "8907:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "8890:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16580,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "8863:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "8863:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "8857:60:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16586,
                  "nodeType": "ExpressionStatement",
                  "src": "8857:60:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the first proposal in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16588,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16570,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16569,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16588,
                  "src": "8725:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16568,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8725:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8724:18:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16573,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16572,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16588,
                  "src": "8788:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16571,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8788:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8787:13:60"
            },
            "scope": 17874,
            "src": "8692:232:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16608,
              "nodeType": "Block",
              "src": "9225:118:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16596,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9243:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16597,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9243:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16595,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9235:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16598,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9235:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16599,
                  "nodeType": "ExpressionStatement",
                  "src": "9235:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16600,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16593,
                      "src": "9277:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16602,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "9309:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16604,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16603,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16590,
                            "src": "9326:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9309:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16601,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "9283:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16605,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9283:53:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9277:59:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16607,
                  "nodeType": "ExpressionStatement",
                  "src": "9277:59:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the last proposal in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16609,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16591,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16590,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16609,
                  "src": "9145:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9145:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9144:18:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16594,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16593,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16609,
                  "src": "9208:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16592,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9208:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9207:13:60"
            },
            "scope": 17874,
            "src": "9113:230:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16632,
              "nodeType": "Block",
              "src": "9680:165:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16619,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "9698:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9698:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16618,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "9690:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16621,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9690:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16622,
                  "nodeType": "ExpressionStatement",
                  "src": "9690:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16623,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16616,
                      "src": "9732:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16625,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "9777:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16627,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16626,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16611,
                            "src": "9794:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "9777:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16628,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16613,
                          "src": "9817:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16624,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "9738:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16629,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9738:100:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9732:106:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16631,
                  "nodeType": "ExpressionStatement",
                  "src": "9732:106:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the next proposal to _proposalId in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16633,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16611,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9579:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16610,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9579:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16613,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9597:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9597:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9578:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16616,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16633,
                  "src": "9663:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16615,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9663:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "9662:13:60"
            },
            "scope": 17874,
            "src": "9547:298:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16656,
              "nodeType": "Block",
              "src": "10190:169:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16643,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "10208:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16644,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10208:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16642,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "10200:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10200:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16646,
                  "nodeType": "ExpressionStatement",
                  "src": "10200:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16647,
                      "name": "_id",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16640,
                      "src": "10242:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16649,
                            "name": "proposalsByState",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16059,
                            "src": "10291:16:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                              "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                            }
                          },
                          "id": 16651,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16650,
                            "name": "_stateId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16635,
                            "src": "10308:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "10291:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16652,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16637,
                          "src": "10331:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16648,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "10248:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10248:104:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "10242:110:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16655,
                  "nodeType": "ExpressionStatement",
                  "src": "10242:110:60"
                }
              ]
            },
            "documentation": "@notice get all information and details of the previous proposal to _proposalId in state _stateId\n @param _stateId State ID of the proposal\n return {\n   \"_id\": \"\"\n }",
            "id": 16657,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposalInState",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16635,
                  "name": "_stateId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10089:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16634,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10089:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16637,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10107:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16636,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10107:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10088:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16641,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16640,
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "scope": 16657,
                  "src": "10173:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16639,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10173:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10172:13:60"
            },
            "scope": 17874,
            "src": "10053:306:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16682,
              "nodeType": "Block",
              "src": "10953:91:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16673,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "10970:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16675,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16674,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16659,
                              "src": "10984:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "10970:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16676,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "10970:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16678,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16677,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16661,
                          "src": "11014:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "10970:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16679,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "readVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8273,
                      "src": "10970:65:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_view$_t_struct$_ProposalVersion_$7945_storage_ptr_$returns$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$bound_to$_t_struct$_ProposalVersion_$7945_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.ProposalVersion storage pointer) view returns (bytes32,uint256,uint256[] memory,uint256)"
                      }
                    },
                    "id": 16680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10970:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                      "typeString": "tuple(bytes32,uint256,uint256[] memory,uint256)"
                    }
                  },
                  "functionReturnParameters": 16672,
                  "id": 16681,
                  "nodeType": "Return",
                  "src": "10963:74:60"
                }
              ]
            },
            "documentation": "@notice read proposal version details for a specific version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal, i.e. hash of IPFS doc for specific version\n return {\n   \"_doc\": \"\",\n   \"_created\": \"\",\n   \"_milestoneFundings\": \"\"\n }",
            "id": 16683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16659,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10723:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16658,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10723:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16661,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10744:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16660,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10744:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10722:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16672,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16664,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10820:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16663,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10820:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16666,
                  "name": "_created",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10846:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16665,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10846:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16669,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10876:28:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16667,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10876:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16668,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "10876:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16671,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 16683,
                  "src": "10918:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16670,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10918:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "10806:142:60"
            },
            "scope": 17874,
            "src": "10694:350:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16731,
              "nodeType": "Block",
              "src": "11383:362:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16694,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11401:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11401:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16693,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11393:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16696,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11393:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16697,
                  "nodeType": "ExpressionStatement",
                  "src": "11393:32:60"
                },
                {
                  "assignments": [
                    16699
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16699,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 16732,
                      "src": "11435:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 16698,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "11435:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16704,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16700,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "11459:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16702,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16701,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16685,
                        "src": "11473:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "11459:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16703,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "11459:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11435:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 16708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16706,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11516:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 16707,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "11533:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "11516:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16705,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11508:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11508:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16710,
                  "nodeType": "ExpressionStatement",
                  "src": "11508:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16719,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16711,
                      "name": "_fundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16689,
                      "src": "11555:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16712,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "11567:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16714,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16713,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16685,
                              "src": "11581:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11567:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16715,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "11567:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16717,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16716,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11611:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11567:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16718,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "11567:76:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "11555:88:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 16720,
                  "nodeType": "ExpressionStatement",
                  "src": "11555:88:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16721,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16691,
                      "src": "11653:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16722,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "11668:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16724,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16723,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16685,
                              "src": "11682:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "11668:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "11668:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16727,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16726,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16699,
                          "src": "11712:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "11668:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16728,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "11668:70:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11653:85:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16730,
                  "nodeType": "ExpressionStatement",
                  "src": "11653:85:60"
                }
              ]
            },
            "documentation": "@notice Read the fundings of a finalized proposal\n@return {\n\"_fundings\": \"fundings for the milestones\",\n\"_finalReward\": \"the final reward\"\n}",
            "id": 16732,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalFunding",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16685,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11263:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16684,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11263:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11262:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16692,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16689,
                  "name": "_fundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11329:26:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16687,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11329:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16688,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "11329:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16691,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 16732,
                  "src": "11357:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16690,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11357:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11328:50:60"
            },
            "scope": 17874,
            "src": "11234:511:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16755,
              "nodeType": "Block",
              "src": "11886:126:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16742,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "11904:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16743,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11904:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16741,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "11896:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16744,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11896:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16745,
                  "nodeType": "ExpressionStatement",
                  "src": "11896:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16753,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16746,
                      "name": "_funding",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16739,
                      "src": "11938:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 16751,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16736,
                          "src": "11998:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16747,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "11949:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16749,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16748,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16734,
                            "src": "11963:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "11949:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16750,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readProposalMilestone",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 8333,
                        "src": "11949:48:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Proposal_$7981_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                          "typeString": "function (struct DaoStructs.Proposal storage pointer,uint256) view returns (uint256)"
                        }
                      },
                      "id": 16752,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "11949:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11938:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16754,
                  "nodeType": "ExpressionStatement",
                  "src": "11938:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 16756,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16737,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16734,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11782:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16733,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11782:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16736,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11803:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16735,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11803:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11781:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16739,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 16756,
                  "src": "11864:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11864:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "11863:18:60"
            },
            "scope": 17874,
            "src": "11751:261:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16778,
              "nodeType": "Block",
              "src": "12320:161:60",
              "statements": [
                {
                  "assignments": [
                    16766
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16766,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16779,
                      "src": "12330:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16765,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "12330:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16770,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16767,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "12370:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16769,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16768,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16758,
                      "src": "12384:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12370:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12330:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16776,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16771,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16761,
                      "src": "12406:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16773,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16766,
                            "src": "12444:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16774,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "12444:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16772,
                        "name": "read_first_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 21986,
                        "src": "12417:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12417:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12406:68:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16777,
                  "nodeType": "ExpressionStatement",
                  "src": "12406:68:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the first version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_version\": \"\"\n }",
            "id": 16779,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getFirstProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16758,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16779,
                  "src": "12232:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12232:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12231:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16761,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16779,
                  "src": "12298:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16760,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12298:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12297:18:60"
            },
            "scope": 17874,
            "src": "12199:282:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16801,
              "nodeType": "Block",
              "src": "12787:160:60",
              "statements": [
                {
                  "assignments": [
                    16789
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16789,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16802,
                      "src": "12797:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16788,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "12797:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16793,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16790,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "12837:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16792,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16791,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16781,
                      "src": "12851:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "12837:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12797:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16794,
                      "name": "_version",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16784,
                      "src": "12873:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16796,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16789,
                            "src": "12910:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16797,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "12910:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        ],
                        "id": 16795,
                        "name": "read_last_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22000,
                        "src": "12884:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer) view returns (bytes32)"
                        }
                      },
                      "id": 16798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12884:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "12873:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16800,
                  "nodeType": "ExpressionStatement",
                  "src": "12873:67:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the last version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n return {\n   \"_version\": \"\"\n }",
            "id": 16802,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getLastProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16782,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16781,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16802,
                  "src": "12699:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16780,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12699:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12698:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16785,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16784,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16802,
                  "src": "12765:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16783,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12765:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "12764:18:60"
            },
            "scope": 17874,
            "src": "12667:280:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16827,
              "nodeType": "Block",
              "src": "13335:208:60",
              "statements": [
                {
                  "assignments": [
                    16814
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16814,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16828,
                      "src": "13345:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16813,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "13345:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16818,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16815,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "13385:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16817,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16816,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16804,
                      "src": "13399:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13385:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13345:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16819,
                      "name": "_nextVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16809,
                      "src": "13421:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16821,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16814,
                            "src": "13475:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16822,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "13475:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16823,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16806,
                          "src": "13518:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16820,
                        "name": "read_next_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22017,
                        "src": "13436:25:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16824,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "13436:100:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "13421:115:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16826,
                  "nodeType": "ExpressionStatement",
                  "src": "13421:115:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the next version to _version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal\n return {\n   \"_nextVersion\": \"\"\n }",
            "id": 16828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getNextProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16807,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16804,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13225:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16803,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13225:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16806,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13246:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16805,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13246:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13224:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16809,
                  "name": "_nextVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16828,
                  "src": "13309:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16808,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13309:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13308:22:60"
            },
            "scope": 17874,
            "src": "13193:350:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16853,
              "nodeType": "Block",
              "src": "13947:216:60",
              "statements": [
                {
                  "assignments": [
                    16840
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16840,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 16854,
                      "src": "13957:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 16839,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "13957:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16844,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 16841,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "13997:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 16843,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 16842,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16830,
                      "src": "14011:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13997:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13957:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16851,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16845,
                      "name": "_previousVersion",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16835,
                      "src": "14033:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 16847,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16840,
                            "src": "14095:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 16848,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersionDocs",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7953,
                          "src": "14095:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 16849,
                          "name": "_version",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16832,
                          "src": "14138:8:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                            "typeString": "struct DoublyLinkedList.Bytes storage ref"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 16846,
                        "name": "read_previous_from_bytesarray",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22034,
                        "src": "14052:29:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 16850,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "14052:104:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "14033:123:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 16852,
                  "nodeType": "ExpressionStatement",
                  "src": "14033:123:60"
                }
              ]
            },
            "documentation": "@notice get proposal version details for the previous version to _version\n @param _proposalId Proposal ID, i.e. hash of IPFS doc\n @param _version Version of proposal\n return {\n   \"_previousVersion\": \"\"\n }",
            "id": 16854,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPreviousProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16830,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13833:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16829,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13833:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16832,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13854:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16831,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13854:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13832:39:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16836,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16835,
                  "name": "_previousVersion",
                  "nodeType": "VariableDeclaration",
                  "scope": 16854,
                  "src": "13917:24:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16834,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "13917:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "13916:26:60"
            },
            "scope": 17874,
            "src": "13797:366:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16869,
              "nodeType": "Block",
              "src": "14278:74:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16867,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16861,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16859,
                      "src": "14288:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 16862,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "14299:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 16864,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 16863,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16856,
                            "src": "14313:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "14299:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 16865,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "14299:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16866,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "14299:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14288:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16868,
                  "nodeType": "ExpressionStatement",
                  "src": "14288:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 16870,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDraftClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16856,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16870,
                  "src": "14193:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16855,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14193:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14192:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16859,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 16870,
                  "src": "14259:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16858,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14259:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14258:15:60"
            },
            "scope": 17874,
            "src": "14169:183:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16889,
              "nodeType": "Block",
              "src": "14478:83:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16887,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16879,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16877,
                      "src": "14488:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16880,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "14499:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16882,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16881,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16872,
                              "src": "14513:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14499:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16883,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "14499:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16885,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16884,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16874,
                          "src": "14539:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14499:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16886,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "14499:55:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "14488:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16888,
                  "nodeType": "ExpressionStatement",
                  "src": "14488:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 16890,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isClaimed",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16875,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16872,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14377:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16871,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14377:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16874,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14398:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16873,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14398:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14376:37:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16878,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16877,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 16890,
                  "src": "14459:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16876,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "14459:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14458:15:60"
            },
            "scope": 17874,
            "src": "14358:203:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16909,
              "nodeType": "Block",
              "src": "14692:112:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16898,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "14710:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16899,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14710:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16897,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "14702:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16900,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14702:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16901,
                  "nodeType": "ExpressionStatement",
                  "src": "14702:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16907,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16902,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16895,
                      "src": "14744:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16903,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "14754:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16905,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16904,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16892,
                          "src": "14768:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14754:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16906,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "collateralStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7965,
                      "src": "14754:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14744:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16908,
                  "nodeType": "ExpressionStatement",
                  "src": "14744:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 16910,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalCollateralStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16892,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16910,
                  "src": "14605:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16891,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14605:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14604:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16896,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16895,
                  "name": "_status",
                  "nodeType": "VariableDeclaration",
                  "scope": 16910,
                  "src": "14671:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16894,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14671:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14670:17:60"
            },
            "scope": 17874,
            "src": "14567:237:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16924,
              "nodeType": "Block",
              "src": "14935:70:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16922,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16917,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16915,
                      "src": "14945:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 16918,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "14955:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 16920,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16919,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16912,
                          "src": "14969:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "14955:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 16921,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "collateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7967,
                      "src": "14955:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14945:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 16923,
                  "nodeType": "ExpressionStatement",
                  "src": "14945:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 16925,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalCollateralAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16913,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16912,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16925,
                  "src": "14848:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16911,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "14848:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14847:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16916,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16915,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 16925,
                  "src": "14914:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16914,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14914:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "14913:17:60"
            },
            "scope": 17874,
            "src": "14810:195:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16956,
              "nodeType": "Block",
              "src": "15276:216:60",
              "statements": [
                {
                  "assignments": [
                    16934
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 16934,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 16957,
                      "src": "15286:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 16933,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "15286:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 16939,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 16935,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "15310:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 16937,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 16936,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16927,
                        "src": "15324:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "15310:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 16938,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "15310:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15286:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 16943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 16941,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16934,
                          "src": "15367:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 16942,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "15384:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "15367:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16940,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "15359:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15359:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16945,
                  "nodeType": "ExpressionStatement",
                  "src": "15359:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16954,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16946,
                      "name": "_moreDocs",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16931,
                      "src": "15406:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                        "typeString": "bytes32[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16947,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "15418:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16949,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16948,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16927,
                              "src": "15432:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15418:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16950,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "15418:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 16952,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16951,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16934,
                          "src": "15462:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15418:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 16953,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "moreDocs",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7944,
                      "src": "15418:67:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "src": "15406:79:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                      "typeString": "bytes32[] memory"
                    }
                  },
                  "id": 16955,
                  "nodeType": "ExpressionStatement",
                  "src": "15406:79:60"
                }
              ]
            },
            "documentation": "@notice Read the additional docs that are added after the proposal is finalized\n @dev Will throw if the propsal is not finalized yet",
            "id": 16957,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalDocs",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16927,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16957,
                  "src": "15185:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16926,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15185:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15184:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16932,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16931,
                  "name": "_moreDocs",
                  "nodeType": "VariableDeclaration",
                  "scope": 16957,
                  "src": "15251:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16929,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "15251:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 16930,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15251:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15250:21:60"
            },
            "scope": 17874,
            "src": "15159:333:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 16981,
              "nodeType": "Block",
              "src": "15635:129:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 16967,
                          "name": "senderIsAllowedToRead",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1867,
                          "src": "15653:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 16968,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15653:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16966,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "15645:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 16969,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15645:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 16970,
                  "nodeType": "ExpressionStatement",
                  "src": "15645:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 16979,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 16971,
                      "name": "_funded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16964,
                      "src": "15687:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 16972,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "15697:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 16974,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 16973,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16959,
                              "src": "15711:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15697:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 16975,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "15697:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 16977,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 16976,
                          "name": "_milestoneId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16961,
                          "src": "15737:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "15697:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 16978,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "funded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7929,
                      "src": "15697:60:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "15687:70:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 16980,
                  "nodeType": "ExpressionStatement",
                  "src": "15687:70:60"
                }
              ]
            },
            "documentation": null,
            "id": 16982,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readIfMilestoneFunded",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16959,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15529:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16958,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15529:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16961,
                  "name": "_milestoneId",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15550:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15550:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15528:43:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16965,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16964,
                  "name": "_funded",
                  "nodeType": "VariableDeclaration",
                  "scope": 16982,
                  "src": "15617:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16963,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "15617:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15616:14:60"
            },
            "scope": 17874,
            "src": "15498:266:60",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17074,
              "nodeType": "Block",
              "src": "16043:626:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 16998,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "16071:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 16997,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "16061:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 16999,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16061:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 16996,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16053:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16053:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17001,
                  "nodeType": "ExpressionStatement",
                  "src": "16053:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 17014,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 17008,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 17003,
                                    "name": "proposalsById",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16055,
                                    "src": "16115:13:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                      "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                    }
                                  },
                                  "id": 17005,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17004,
                                    "name": "_doc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 16984,
                                    "src": "16129:4:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "16115:19:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                    "typeString": "struct DaoStructs.Proposal storage ref"
                                  }
                                },
                                "id": 17006,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalId",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7947,
                                "src": "16115:30:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 17007,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "16149:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "16115:45:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 17009,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16114:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 17012,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 17010,
                                "name": "_doc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16984,
                                "src": "16176:4:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 17011,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "16184:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "16176:19:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "id": 17013,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "16175:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "16114:82:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17002,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16095:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17015,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16095:111:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17016,
                  "nodeType": "ExpressionStatement",
                  "src": "16095:111:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17020,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16237:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 17017,
                        "name": "allProposals",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16051,
                        "src": "16217:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17019,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "16217:19:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17021,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16217:25:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17022,
                  "nodeType": "ExpressionStatement",
                  "src": "16217:25:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17027,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16304:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17023,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "16252:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17025,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17024,
                          "name": "PROPOSAL_STATE_PREPROPOSAL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1301,
                          "src": "16269:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16252:44:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17026,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "16252:51:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17028,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16252:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17029,
                  "nodeType": "ExpressionStatement",
                  "src": "16252:57:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17035,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17030,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16319:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17032,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17031,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16333:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16319:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17033,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposalId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7947,
                      "src": "16319:30:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17034,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16984,
                      "src": "16352:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16319:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17036,
                  "nodeType": "ExpressionStatement",
                  "src": "16319:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17042,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17037,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16366:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17039,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17038,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16380:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16366:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17040,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "proposer",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7974,
                      "src": "16366:28:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17041,
                      "name": "_proposer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16986,
                      "src": "16397:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "16366:40:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 17043,
                  "nodeType": "ExpressionStatement",
                  "src": "16366:40:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17044,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16416:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17046,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17045,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16430:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16416:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17047,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "16416:32:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17048,
                      "name": "PROPOSAL_STATE_PREPROPOSAL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1301,
                      "src": "16451:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "16416:61:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17050,
                  "nodeType": "ExpressionStatement",
                  "src": "16416:61:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17051,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16487:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17053,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17052,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16501:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16487:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17054,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "timeCreated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7951,
                      "src": "16487:31:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17055,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "16521:3:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "16487:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17057,
                  "nodeType": "ExpressionStatement",
                  "src": "16487:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17063,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17058,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16534:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17060,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17059,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16548:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16534:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17061,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "isDigix",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7980,
                      "src": "16534:27:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17062,
                      "name": "_isFounder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16993,
                      "src": "16564:10:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "16534:40:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17064,
                  "nodeType": "ExpressionStatement",
                  "src": "16534:40:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17069,
                        "name": "_doc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16984,
                        "src": "16623:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17070,
                        "name": "_milestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16989,
                        "src": "16629:18:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17071,
                        "name": "_finalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16991,
                        "src": "16649:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17065,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16584:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17067,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17066,
                          "name": "_doc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16984,
                          "src": "16598:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16584:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17068,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addProposalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8400,
                      "src": "16584:38:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Proposal_$7981_storage_ptr_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Proposal storage pointer,bytes32,uint256[] memory,uint256)"
                      }
                    },
                    "id": 17072,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16584:78:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17073,
                  "nodeType": "ExpressionStatement",
                  "src": "16584:78:60"
                }
              ]
            },
            "documentation": "/////////////////////////// WRITE FUNCTIONS //////////////////////////////",
            "id": 17075,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 16994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 16984,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15883:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 16983,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "15883:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16986,
                  "name": "_proposer",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15905:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 16985,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15905:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16989,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15932:28:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 16987,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "15932:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 16988,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "15932:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16991,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "15970:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 16990,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15970:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 16993,
                  "name": "_isFounder",
                  "nodeType": "VariableDeclaration",
                  "scope": 17075,
                  "src": "16000:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 16992,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "16000:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "15873:148:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 16995,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16043:0:60"
            },
            "scope": 17874,
            "src": "15853:816:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17102,
              "nodeType": "Block",
              "src": "16849:151:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17089,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "16877:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17088,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "16867:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17090,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "16867:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17087,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "16859:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16859:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17092,
                  "nodeType": "ExpressionStatement",
                  "src": "16859:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17097,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17079,
                        "src": "16948:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17098,
                        "name": "_newMilestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17082,
                        "src": "16957:21:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17099,
                        "name": "_finalReward",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17084,
                        "src": "16980:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17093,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "16902:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17095,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17094,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17077,
                          "src": "16916:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "16902:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17096,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addProposalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8400,
                      "src": "16902:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Proposal_$7981_storage_ptr_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_Proposal_$7981_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Proposal storage pointer,bytes32,uint256[] memory,uint256)"
                      }
                    },
                    "id": 17100,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "16902:91:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17101,
                  "nodeType": "ExpressionStatement",
                  "src": "16902:91:60"
                }
              ]
            },
            "documentation": null,
            "id": 17103,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "editProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17077,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16706:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17076,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16706:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17079,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16735:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17078,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "16735:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17082,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16760:31:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17080,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "16760:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17081,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "16760:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17084,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17103,
                  "src": "16801:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17083,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "16801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "16696:131:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17086,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "16849:0:60"
            },
            "scope": 17874,
            "src": "16675:325:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17152,
              "nodeType": "Block",
              "src": "17234:375:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17115,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "17262:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17114,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "17252:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17252:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17113,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17244:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17117,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17244:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17118,
                  "nodeType": "ExpressionStatement",
                  "src": "17244:32:60"
                },
                {
                  "assignments": [
                    17120
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17120,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 17153,
                      "src": "17287:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17119,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17287:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17125,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17121,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "17311:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17123,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17122,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17105,
                        "src": "17325:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "17311:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17124,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "17311:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17287:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17129,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 17127,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17368:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17128,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "17385:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "17368:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17126,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17360:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17130,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17360:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17131,
                  "nodeType": "ExpressionStatement",
                  "src": "17360:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17140,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17132,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "17407:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17134,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17133,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17105,
                              "src": "17421:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "17407:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17135,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "17407:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 17137,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17136,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17451:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17407:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 17138,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "17407:76:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17139,
                      "name": "_newMilestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17108,
                      "src": "17486:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                        "typeString": "uint256[] calldata"
                      }
                    },
                    "src": "17407:100:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 17141,
                  "nodeType": "ExpressionStatement",
                  "src": "17407:100:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17142,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "17517:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17144,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17143,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17105,
                              "src": "17531:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "17517:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17145,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "17517:43:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 17147,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17146,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17120,
                          "src": "17561:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "17517:58:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 17148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "17517:70:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17149,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17110,
                      "src": "17590:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "17517:85:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17151,
                  "nodeType": "ExpressionStatement",
                  "src": "17517:85:60"
                }
              ]
            },
            "documentation": "@notice change fundings of a proposal\n @dev Will throw if the proposal is not finalized yet",
            "id": 17153,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changeFundings",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17105,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17137:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17104,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17137:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17108,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17158:31:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17106,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "17158:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17107,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "17158:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17110,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 17153,
                  "src": "17191:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "17191:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17136:76:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17112,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17234:0:60"
            },
            "scope": 17874,
            "src": "17113:496:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17190,
              "nodeType": "Block",
              "src": "17757:313:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17162,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "17785:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17161,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "17775:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17163,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "17775:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17160,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17767:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17767:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17165,
                  "nodeType": "ExpressionStatement",
                  "src": "17767:32:60"
                },
                {
                  "assignments": [
                    17167
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17167,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 17191,
                      "src": "17810:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17166,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "17810:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17172,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17168,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "17834:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17170,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17169,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17155,
                        "src": "17848:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "17834:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17171,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "17834:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "17810:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17176,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 17174,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17167,
                          "src": "17891:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17175,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1293,
                          "src": "17908:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "17891:28:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17173,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "17883:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17177,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17883:37:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17178,
                  "nodeType": "ExpressionStatement",
                  "src": "17883:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17187,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17157,
                        "src": "18055:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17179,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "17982:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17181,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17180,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17155,
                                "src": "17996:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "17982:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17182,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "proposalVersions",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7957,
                            "src": "17982:43:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                            }
                          },
                          "id": 17184,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17183,
                            "name": "_finalVersion",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17167,
                            "src": "18026:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "17982:58:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                            "typeString": "struct DaoStructs.ProposalVersion storage ref"
                          }
                        },
                        "id": 17185,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "moreDocs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7944,
                        "src": "17982:67:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                          "typeString": "bytes32[] storage ref"
                        }
                      },
                      "id": 17186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "17982:72:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 17188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "17982:81:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17189,
                  "nodeType": "ExpressionStatement",
                  "src": "17982:81:60"
                }
              ]
            },
            "documentation": "@dev Will throw if the proposal is not finalized yet",
            "id": 17191,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposalDoc",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17155,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17191,
                  "src": "17700:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17154,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17700:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17157,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17191,
                  "src": "17721:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17156,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "17721:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "17699:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17159,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "17757:0:60"
            },
            "scope": 17874,
            "src": "17676:394:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17211,
              "nodeType": "Block",
              "src": "18142:137:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17198,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "18170:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17197,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18160:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17199,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18160:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17196,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18152:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17200,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18152:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17201,
                  "nodeType": "ExpressionStatement",
                  "src": "18152:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17202,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "18195:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17204,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17203,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17193,
                          "src": "18209:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18195:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17205,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalVersion",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7969,
                      "src": "18195:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 17207,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17193,
                          "src": "18260:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 17206,
                        "name": "getLastProposalVersion",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16802,
                        "src": "18237:22:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$",
                          "typeString": "function (bytes32) view returns (bytes32)"
                        }
                      },
                      "id": 17208,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "18237:35:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18195:77:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17210,
                  "nodeType": "ExpressionStatement",
                  "src": "18195:77:60"
                }
              ]
            },
            "documentation": null,
            "id": 17212,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "finalizeProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17194,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17193,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17212,
                  "src": "18102:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17192,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18102:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18101:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17195,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18142:0:60"
            },
            "scope": 17874,
            "src": "18076:203:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17259,
              "nodeType": "Block",
              "src": "18397:368:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17221,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "18425:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17220,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18415:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17222,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18415:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17219,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18407:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17223,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18407:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17224,
                  "nodeType": "ExpressionStatement",
                  "src": "18407:32:60"
                },
                {
                  "assignments": [
                    17228
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17228,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 17260,
                      "src": "18450:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17227,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "18450:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17232,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 17229,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "18490:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 17231,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 17230,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17214,
                      "src": "18504:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "18490:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "18450:66:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17237,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17233,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17228,
                        "src": "18526:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 17235,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "endorser",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7976,
                      "src": "18526:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17236,
                      "name": "_endorser",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17216,
                      "src": "18547:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "18526:30:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 17238,
                  "nodeType": "ExpressionStatement",
                  "src": "18526:30:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17239,
                        "name": "_proposal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17228,
                        "src": "18566:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal storage pointer"
                        }
                      },
                      "id": 17241,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "18566:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17242,
                      "name": "PROPOSAL_STATE_DRAFT",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1304,
                      "src": "18591:20:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "18566:45:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17244,
                  "nodeType": "ExpressionStatement",
                  "src": "18566:45:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17249,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17214,
                        "src": "18678:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17245,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "18621:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17247,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17246,
                          "name": "PROPOSAL_STATE_PREPROPOSAL",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1301,
                          "src": "18638:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18621:44:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17248,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "18621:56:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18621:69:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17251,
                  "nodeType": "ExpressionStatement",
                  "src": "18621:69:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17256,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17214,
                        "src": "18746:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17252,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "18700:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17254,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17253,
                          "name": "PROPOSAL_STATE_DRAFT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1304,
                          "src": "18717:20:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "18700:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17255,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "18700:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18700:58:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17258,
                  "nodeType": "ExpressionStatement",
                  "src": "18700:58:60"
                }
              ]
            },
            "documentation": null,
            "id": 17260,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "updateProposalEndorse",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17217,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17214,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17260,
                  "src": "18325:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17213,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18325:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17216,
                  "name": "_endorser",
                  "nodeType": "VariableDeclaration",
                  "scope": 17260,
                  "src": "18354:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17215,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "18354:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18315:62:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17218,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18397:0:60"
            },
            "scope": 17874,
            "src": "18285:480:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17310,
              "nodeType": "Block",
              "src": "18855:460:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17269,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "18883:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17268,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "18873:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "18873:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17267,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "18865:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17271,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "18865:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17272,
                  "nodeType": "ExpressionStatement",
                  "src": "18865:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17273,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "18922:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17275,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17274,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17262,
                            "src": "18936:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "18922:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17276,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "18922:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17277,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "18922:45:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17278,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17264,
                      "src": "18970:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "18922:55:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17280,
                  "nodeType": "ExpressionStatement",
                  "src": "18922:55:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17281,
                    "name": "_result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17264,
                    "src": "18991:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17308,
                    "nodeType": "Block",
                    "src": "19250:59:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17305,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19286:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 17304,
                            "name": "closeProposalInternal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17643,
                            "src": "19264:21:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 17306,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19264:34:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 17307,
                        "nodeType": "ExpressionStatement",
                        "src": "19264:34:60"
                      }
                    ]
                  },
                  "id": 17309,
                  "nodeType": "IfStatement",
                  "src": "18987:322:60",
                  "trueBody": {
                    "id": 17303,
                    "nodeType": "Block",
                    "src": "19000:244:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17286,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19065:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17282,
                                "name": "proposalsByState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16059,
                                "src": "19014:16:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                }
                              },
                              "id": 17284,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17283,
                                "name": "PROPOSAL_STATE_DRAFT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1304,
                                "src": "19031:20:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19014:38:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                "typeString": "struct DoublyLinkedList.Bytes storage ref"
                              }
                            },
                            "id": 17285,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "remove_item",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24621,
                            "src": "19014:50:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                              "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                            }
                          },
                          "id": 17287,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19014:63:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17288,
                        "nodeType": "ExpressionStatement",
                        "src": "19014:63:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17293,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17262,
                              "src": "19141:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17289,
                                "name": "proposalsByState",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16059,
                                "src": "19091:16:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                  "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                }
                              },
                              "id": 17291,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17290,
                                "name": "PROPOSAL_STATE_MODERATED",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1307,
                                "src": "19108:24:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19091:42:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                "typeString": "struct DoublyLinkedList.Bytes storage ref"
                              }
                            },
                            "id": 17292,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "append",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24585,
                            "src": "19091:49:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                              "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                            }
                          },
                          "id": 17294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19091:62:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17295,
                        "nodeType": "ExpressionStatement",
                        "src": "19091:62:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17301,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17296,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "19167:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17298,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17297,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17262,
                                "src": "19181:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "19167:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17299,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "currentState",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7949,
                            "src": "19167:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17300,
                            "name": "PROPOSAL_STATE_MODERATED",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1307,
                            "src": "19209:24:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "19167:66:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 17302,
                        "nodeType": "ExpressionStatement",
                        "src": "19167:66:60"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17311,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalDraftPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17262,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17311,
                  "src": "18801:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17261,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "18801:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17264,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 17311,
                  "src": "18822:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17263,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "18822:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "18800:35:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17266,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "18855:0:60"
            },
            "scope": 17874,
            "src": "18771:544:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17370,
              "nodeType": "Block",
              "src": "19416:487:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17322,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "19444:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17321,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "19434:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "19434:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17320,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "19426:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19426:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17325,
                  "nodeType": "ExpressionStatement",
                  "src": "19426:46:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17327,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "19487:8:60",
                    "subExpression": {
                      "argumentTypes": null,
                      "id": 17326,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17317,
                      "src": "19488:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 17335,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 17333,
                        "name": "_index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17315,
                        "src": "19566:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 17334,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19576:1:60",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "19566:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 17358,
                    "nodeType": "IfStatement",
                    "src": "19562:261:60",
                    "trueBody": {
                      "id": 17357,
                      "nodeType": "Block",
                      "src": "19579:244:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17340,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17313,
                                "src": "19648:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17336,
                                  "name": "proposalsByState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16059,
                                  "src": "19593:16:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                  }
                                },
                                "id": 17338,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17337,
                                  "name": "PROPOSAL_STATE_MODERATED",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1307,
                                  "src": "19610:24:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19593:42:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                  "typeString": "struct DoublyLinkedList.Bytes storage ref"
                                }
                              },
                              "id": 17339,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "remove_item",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24621,
                              "src": "19593:54:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                                "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                              }
                            },
                            "id": 17341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19593:67:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17342,
                          "nodeType": "ExpressionStatement",
                          "src": "19593:67:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17347,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17313,
                                "src": "19722:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17343,
                                  "name": "proposalsByState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16059,
                                  "src": "19674:16:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                                    "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                                  }
                                },
                                "id": 17345,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17344,
                                  "name": "PROPOSAL_STATE_ONGOING",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1310,
                                  "src": "19691:22:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19674:40:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                                  "typeString": "struct DoublyLinkedList.Bytes storage ref"
                                }
                              },
                              "id": 17346,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "append",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 24585,
                              "src": "19674:47:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                                "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                              }
                            },
                            "id": 17348,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "19674:60:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17349,
                          "nodeType": "ExpressionStatement",
                          "src": "19674:60:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17355,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17350,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "19748:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17352,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17351,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17313,
                                  "src": "19762:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "19748:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17353,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "currentState",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7949,
                              "src": "19748:39:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "id": 17354,
                              "name": "PROPOSAL_STATE_ONGOING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1310,
                              "src": "19790:22:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "19748:64:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "id": 17356,
                          "nodeType": "ExpressionStatement",
                          "src": "19748:64:60"
                        }
                      ]
                    }
                  },
                  "id": 17359,
                  "nodeType": "IfStatement",
                  "src": "19483:340:60",
                  "trueBody": {
                    "id": 17332,
                    "nodeType": "Block",
                    "src": "19497:59:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 17329,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17313,
                              "src": "19533:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 17328,
                            "name": "closeProposalInternal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17643,
                            "src": "19511:21:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 17330,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19511:34:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 17331,
                        "nodeType": "ExpressionStatement",
                        "src": "19511:34:60"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17368,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17360,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "19832:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17362,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17361,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17313,
                              "src": "19846:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "19832:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17363,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "19832:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17365,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17364,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17315,
                          "src": "19872:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "19832:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17366,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "passed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7925,
                      "src": "19832:54:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17367,
                      "name": "_result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17317,
                      "src": "19889:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "19832:64:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17369,
                  "nodeType": "ExpressionStatement",
                  "src": "19832:64:60"
                }
              ]
            },
            "documentation": null,
            "id": 17371,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalPass",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17313,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19346:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17312,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19346:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17315,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19367:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17314,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19367:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17317,
                  "name": "_result",
                  "nodeType": "VariableDeclaration",
                  "scope": 17371,
                  "src": "19383:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17316,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "19383:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19345:51:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17319,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "19416:0:60"
            },
            "scope": 17874,
            "src": "19321:582:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17392,
              "nodeType": "Block",
              "src": "20022:116:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17380,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "20050:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17379,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20040:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17381,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20040:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17378,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20032:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17382,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20032:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17383,
                  "nodeType": "ExpressionStatement",
                  "src": "20032:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17390,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17384,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "20075:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17386,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17385,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17373,
                            "src": "20089:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20075:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17387,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "20075:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17388,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "20075:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17389,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17375,
                      "src": "20126:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20075:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17391,
                  "nodeType": "ExpressionStatement",
                  "src": "20075:56:60"
                }
              ]
            },
            "documentation": null,
            "id": 17393,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalDraftVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17373,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17393,
                  "src": "19954:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17372,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "19954:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17375,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17393,
                  "src": "19983:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17374,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "19983:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "19944:58:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17377,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20022:0:60"
            },
            "scope": 17874,
            "src": "19909:229:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17421,
              "nodeType": "Block",
              "src": "20276:173:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 17404,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "20310:12:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17405,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "20324:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17406,
                                "name": "EMPTY_BYTES",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1293,
                                "src": "20352:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 17407,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "20309:55:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 17403,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "20294:14:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 17408,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20294:71:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17402,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20286:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20286:80:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17410,
                  "nodeType": "ExpressionStatement",
                  "src": "20286:80:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17419,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17411,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "20377:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17413,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17412,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17395,
                              "src": "20391:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20377:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17414,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "20377:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17416,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17415,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17397,
                          "src": "20417:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20377:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17417,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "startTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7907,
                      "src": "20377:57:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17418,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17399,
                      "src": "20437:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "20377:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17420,
                  "nodeType": "ExpressionStatement",
                  "src": "20377:65:60"
                }
              ]
            },
            "documentation": null,
            "id": 17422,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalVotingTime",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17395,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20184:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17394,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20184:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17397,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20213:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17396,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20213:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17399,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17422,
                  "src": "20237:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17398,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20237:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20174:82:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17401,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20276:0:60"
            },
            "scope": 17874,
            "src": "20144:305:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17443,
              "nodeType": "Block",
              "src": "20539:130:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17431,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "20567:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17430,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20557:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20557:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17429,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20549:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17433,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20549:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17434,
                  "nodeType": "ExpressionStatement",
                  "src": "20549:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17441,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17435,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "20605:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17437,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17436,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17424,
                            "src": "20619:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "20605:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17438,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "draftVoting",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7959,
                        "src": "20605:38:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17439,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "20605:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17440,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17426,
                      "src": "20654:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20605:57:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17442,
                  "nodeType": "ExpressionStatement",
                  "src": "20605:57:60"
                }
              ]
            },
            "documentation": null,
            "id": 17444,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setDraftVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17427,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17424,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17444,
                  "src": "20484:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17423,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20484:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17426,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 17444,
                  "src": "20505:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17425,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20505:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20483:36:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17428,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20539:0:60"
            },
            "scope": 17874,
            "src": "20455:214:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17469,
              "nodeType": "Block",
              "src": "20770:139:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17455,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "20798:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17454,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "20788:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20788:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17453,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "20780:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20780:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17458,
                  "nodeType": "ExpressionStatement",
                  "src": "20780:46:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17467,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17459,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "20836:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17461,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17460,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17446,
                              "src": "20850:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "20836:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17462,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "20836:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17464,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17463,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17448,
                          "src": "20876:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "20836:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17465,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "claimed",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7927,
                      "src": "20836:55:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17466,
                      "name": "_claimed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17450,
                      "src": "20894:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "20836:66:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17468,
                  "nodeType": "ExpressionStatement",
                  "src": "20836:66:60"
                }
              ]
            },
            "documentation": null,
            "id": 17470,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setVotingClaim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17451,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17446,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20699:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17445,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20699:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17448,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20720:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17447,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20720:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17450,
                  "name": "_claimed",
                  "nodeType": "VariableDeclaration",
                  "scope": 17470,
                  "src": "20736:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17449,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "20736:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20698:52:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17452,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "20770:0:60"
            },
            "scope": 17874,
            "src": "20675:234:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17493,
              "nodeType": "Block",
              "src": "21009:177:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "id": 17479,
                                "name": "CONTRACT_DAO_VOTING_CLAIMS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1358,
                                "src": "21043:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17480,
                                "name": "CONTRACT_DAO_FUNDING_MANAGER",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1376,
                                "src": "21071:28:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 17481,
                                "name": "CONTRACT_DAO",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1346,
                                "src": "21101:12:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "id": 17482,
                            "isConstant": false,
                            "isInlineArray": true,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "21042:72:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                              "typeString": "bytes32[3] memory"
                            }
                          ],
                          "id": 17478,
                          "name": "sender_is_from",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18529,
                          "src": "21027:14:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bool_$",
                            "typeString": "function (bytes32[3] memory) view returns (bool)"
                          }
                        },
                        "id": 17483,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21027:88:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17477,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21019:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17484,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21019:97:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17485,
                  "nodeType": "ExpressionStatement",
                  "src": "21019:97:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17491,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17486,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "21126:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17488,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17487,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17472,
                          "src": "21140:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21126:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17489,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "collateralStatus",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7965,
                      "src": "21126:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17490,
                      "name": "_status",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17474,
                      "src": "21172:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21126:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17492,
                  "nodeType": "ExpressionStatement",
                  "src": "21126:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 17494,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalCollateralStatus",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17472,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17494,
                  "src": "20952:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "20952:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17474,
                  "name": "_status",
                  "nodeType": "VariableDeclaration",
                  "scope": 17494,
                  "src": "20973:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17473,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20973:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "20951:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21009:0:60"
            },
            "scope": 17874,
            "src": "20915:271:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17514,
              "nodeType": "Block",
              "src": "21286:112:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17503,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "21314:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17502,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "21304:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21304:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17501,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21296:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17505,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21296:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17506,
                  "nodeType": "ExpressionStatement",
                  "src": "21296:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17507,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "21338:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17509,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17508,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17496,
                          "src": "21352:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "21338:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17510,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "collateralAmount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7967,
                      "src": "21338:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17511,
                      "name": "_amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17498,
                      "src": "21384:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21338:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17513,
                  "nodeType": "ExpressionStatement",
                  "src": "21338:53:60"
                }
              ]
            },
            "documentation": null,
            "id": 17515,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setProposalCollateralAmount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17499,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17496,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17515,
                  "src": "21229:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17495,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21229:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17498,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 17515,
                  "src": "21250:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17497,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21250:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21228:38:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17500,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21286:0:60"
            },
            "scope": 17874,
            "src": "21192:206:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17608,
              "nodeType": "Block",
              "src": "21555:708:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17528,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "21583:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17527,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "21573:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "21573:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17526,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21565:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21565:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17531,
                  "nodeType": "ExpressionStatement",
                  "src": "21565:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 17538,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17533,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "21615:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17535,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17534,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17517,
                              "src": "21629:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "21615:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17536,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "currentState",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7949,
                          "src": "21615:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 17537,
                          "name": "PROPOSAL_STATE_CLOSED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1313,
                          "src": "21658:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "21615:64:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17532,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "21607:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17539,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21607:73:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17540,
                  "nodeType": "ExpressionStatement",
                  "src": "21607:73:60"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17544,
                      "name": "prlAction",
                      "nodeType": "VariableDeclaration",
                      "scope": 17609,
                      "src": "21691:37:60",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                        "typeString": "struct DaoStructs.PrlAction"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17543,
                        "name": "DaoStructs.PrlAction",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7905,
                        "src": "21691:20:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                          "typeString": "struct DaoStructs.PrlAction"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17545,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "21691:37:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17550,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17546,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21738:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17548,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "at",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7900,
                      "src": "21738:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17549,
                      "name": "_time",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17523,
                      "src": "21753:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21738:20:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17551,
                  "nodeType": "ExpressionStatement",
                  "src": "21738:20:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17556,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17552,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21768:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17554,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "doc",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7902,
                      "src": "21768:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17555,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17521,
                      "src": "21784:4:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "21768:20:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17557,
                  "nodeType": "ExpressionStatement",
                  "src": "21768:20:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17562,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 17558,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21798:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      },
                      "id": 17560,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "actionId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7904,
                      "src": "21798:18:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17561,
                      "name": "_action",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17519,
                      "src": "21819:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21798:28:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17563,
                  "nodeType": "ExpressionStatement",
                  "src": "21798:28:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17569,
                        "name": "prlAction",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "21879:9:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_PrlAction_$7905_memory_ptr",
                          "typeString": "struct DaoStructs.PrlAction memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 17564,
                            "name": "proposalsById",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 16055,
                            "src": "21836:13:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                              "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                            }
                          },
                          "id": 17566,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17565,
                            "name": "_proposalId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17517,
                            "src": "21850:11:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "21836:26:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                            "typeString": "struct DaoStructs.Proposal storage ref"
                          }
                        },
                        "id": 17567,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "prlActions",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7972,
                        "src": "21836:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage",
                          "typeString": "struct DaoStructs.PrlAction storage ref[] storage ref"
                        }
                      },
                      "id": 17568,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "21836:42:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_PrlAction_$7905_storage_$returns$_t_uint256_$",
                        "typeString": "function (struct DaoStructs.PrlAction storage ref) returns (uint256)"
                      }
                    },
                    "id": 17570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21836:53:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17571,
                  "nodeType": "ExpressionStatement",
                  "src": "21836:53:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 17572,
                      "name": "_action",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17519,
                      "src": "21904:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 17573,
                      "name": "PRL_ACTION_PAUSE",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1322,
                      "src": "21915:16:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "21904:27:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 17585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 17583,
                        "name": "_action",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17519,
                        "src": "22017:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 17584,
                        "name": "PRL_ACTION_UNPAUSE",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1325,
                        "src": "22028:18:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "22017:29:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 17605,
                      "nodeType": "Block",
                      "src": "22129:128:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17599,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17594,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "22149:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17596,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17595,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17517,
                                  "src": "22163:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "22149:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17597,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "isPausedOrStopped",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7978,
                              "src": "22149:44:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 17598,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22196:4:60",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            },
                            "src": "22149:51:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17600,
                          "nodeType": "ExpressionStatement",
                          "src": "22149:51:60"
                        },
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 17602,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17517,
                                "src": "22234:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 17601,
                              "name": "closeProposalInternal",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17643,
                              "src": "22212:21:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                                "typeString": "function (bytes32)"
                              }
                            },
                            "id": 17603,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "22212:34:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 17604,
                          "nodeType": "ExpressionStatement",
                          "src": "22212:34:60"
                        }
                      ]
                    },
                    "id": 17606,
                    "nodeType": "IfStatement",
                    "src": "22013:244:60",
                    "trueBody": {
                      "id": 17593,
                      "nodeType": "Block",
                      "src": "22048:75:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 17591,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 17586,
                                  "name": "proposalsById",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 16055,
                                  "src": "22060:13:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                  }
                                },
                                "id": 17588,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 17587,
                                  "name": "_proposalId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17517,
                                  "src": "22074:11:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "22060:26:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                  "typeString": "struct DaoStructs.Proposal storage ref"
                                }
                              },
                              "id": 17589,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "memberName": "isPausedOrStopped",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7978,
                              "src": "22060:44:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "66616c7365",
                              "id": 17590,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22107:5:60",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "false"
                            },
                            "src": "22060:52:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 17592,
                          "nodeType": "ExpressionStatement",
                          "src": "22060:52:60"
                        }
                      ]
                    }
                  },
                  "id": 17607,
                  "nodeType": "IfStatement",
                  "src": "21900:357:60",
                  "trueBody": {
                    "id": 17582,
                    "nodeType": "Block",
                    "src": "21933:74:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17580,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17575,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "21945:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17577,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17576,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17517,
                                "src": "21959:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "21945:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17578,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "isPausedOrStopped",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7978,
                            "src": "21945:44:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 17579,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "21992:4:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "21945:51:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 17581,
                        "nodeType": "ExpressionStatement",
                        "src": "21945:51:60"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17609,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "updateProposalPRL",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17517,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21440:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17516,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21440:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17519,
                  "name": "_action",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21469:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17518,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21469:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17521,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21494:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17520,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "21494:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17523,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 17609,
                  "src": "21516:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17522,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21516:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "21430:105:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "21555:0:60"
            },
            "scope": 17874,
            "src": "21404:859:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17642,
              "nodeType": "Block",
              "src": "22342:288:60",
              "statements": [
                {
                  "assignments": [
                    17615
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17615,
                      "name": "_currentState",
                      "nodeType": "VariableDeclaration",
                      "scope": 17643,
                      "src": "22352:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17614,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "22352:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17620,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17616,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "22376:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17618,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17617,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22390:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "22376:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17619,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "currentState",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7949,
                    "src": "22376:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22352:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17625,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22469:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17621,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "22425:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17623,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17622,
                          "name": "_currentState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17615,
                          "src": "22442:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22425:31:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17624,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "22425:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22425:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17627,
                  "nodeType": "ExpressionStatement",
                  "src": "22425:56:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17632,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17611,
                        "src": "22538:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17628,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "22491:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17630,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17629,
                          "name": "PROPOSAL_STATE_CLOSED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1313,
                          "src": "22508:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22491:39:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17631,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "22491:46:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17633,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22491:59:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17634,
                  "nodeType": "ExpressionStatement",
                  "src": "22491:59:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17640,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17635,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "22560:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17637,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17636,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17611,
                          "src": "22574:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "22560:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17638,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "22560:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17639,
                      "name": "PROPOSAL_STATE_CLOSED",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1313,
                      "src": "22602:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "22560:63:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17641,
                  "nodeType": "ExpressionStatement",
                  "src": "22560:63:60"
                }
              ]
            },
            "documentation": null,
            "id": 17643,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "closeProposalInternal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17612,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17611,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17643,
                  "src": "22300:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17610,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22300:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22299:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17613,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22342:0:60"
            },
            "scope": 17874,
            "src": "22269:361:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 17730,
              "nodeType": "Block",
              "src": "22781:653:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17656,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "22809:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17655,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "22799:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17657,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "22799:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17654,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "22791:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17658,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "22791:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17659,
                  "nodeType": "ExpressionStatement",
                  "src": "22791:39:60"
                },
                {
                  "assignments": [
                    17663
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17663,
                      "name": "_proposal",
                      "nodeType": "VariableDeclaration",
                      "scope": 17731,
                      "src": "22841:37:60",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 17662,
                        "name": "DaoStructs.Proposal",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7981,
                        "src": "22841:19:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                          "typeString": "struct DaoStructs.Proposal"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17667,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 17664,
                      "name": "proposalsById",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 16055,
                      "src": "22881:13:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                        "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                      }
                    },
                    "id": 17666,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 17665,
                      "name": "_proposalId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17645,
                      "src": "22895:11:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "22881:26:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                      "typeString": "struct DaoStructs.Proposal storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "22841:66:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 17668,
                    "name": "_vote",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17649,
                    "src": "22921:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17728,
                    "nodeType": "Block",
                    "src": "23220:208:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17707,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17699,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23234:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17703,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23234:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17704,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "23234:29:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17705,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17702,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23264:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "23234:37:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17706,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17651,
                            "src": "23274:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "23234:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17708,
                        "nodeType": "ExpressionStatement",
                        "src": "23234:47:60"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 17715,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17709,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23299:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17710,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23299:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17711,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "23299:30:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17713,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17712,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23330:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23299:38:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 17714,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "23340:1:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "23299:42:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 17727,
                        "nodeType": "IfStatement",
                        "src": "23295:123:60",
                        "trueBody": {
                          "id": 17726,
                          "nodeType": "Block",
                          "src": "23343:75:60",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 17724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 17716,
                                        "name": "_proposal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17663,
                                        "src": "23361:9:60",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                          "typeString": "struct DaoStructs.Proposal storage pointer"
                                        }
                                      },
                                      "id": 17720,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "draftVoting",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7959,
                                      "src": "23361:21:60",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                        "typeString": "struct DaoStructs.Voting storage ref"
                                      }
                                    },
                                    "id": 17721,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "yesVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7919,
                                    "src": "23361:30:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 17722,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17719,
                                    "name": "_voter",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17647,
                                    "src": "23392:6:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "23361:38:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 17723,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23402:1:60",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "23361:42:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 17725,
                              "nodeType": "ExpressionStatement",
                              "src": "23361:42:60"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "id": 17729,
                  "nodeType": "IfStatement",
                  "src": "22917:511:60",
                  "trueBody": {
                    "id": 17698,
                    "nodeType": "Block",
                    "src": "22928:286:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 17677,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17669,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "22942:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17673,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "22942:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17674,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "22942:30:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17675,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17672,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "22973:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "22942:38:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 17676,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17651,
                            "src": "22983:7:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "22942:48:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 17678,
                        "nodeType": "ExpressionStatement",
                        "src": "22942:48:60"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 17685,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 17679,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 17663,
                                  "src": "23008:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 17680,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "draftVoting",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7959,
                                "src": "23008:21:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                  "typeString": "struct DaoStructs.Voting storage ref"
                                }
                              },
                              "id": 17681,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "23008:29:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 17683,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17682,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17647,
                              "src": "23038:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23008:37:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 17684,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "23048:1:60",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "23008:41:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": null,
                        "id": 17697,
                        "nodeType": "IfStatement",
                        "src": "23004:200:60",
                        "trueBody": {
                          "id": 17696,
                          "nodeType": "Block",
                          "src": "23051:153:60",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 17694,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 17686,
                                        "name": "_proposal",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 17663,
                                        "src": "23148:9:60",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                          "typeString": "struct DaoStructs.Proposal storage pointer"
                                        }
                                      },
                                      "id": 17690,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "draftVoting",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7959,
                                      "src": "23148:21:60",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage",
                                        "typeString": "struct DaoStructs.Voting storage ref"
                                      }
                                    },
                                    "id": 17691,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "noVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7923,
                                    "src": "23148:29:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 17692,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 17689,
                                    "name": "_voter",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 17647,
                                    "src": "23178:6:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "23148:37:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 17693,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "23188:1:60",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "23148:41:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 17695,
                              "nodeType": "ExpressionStatement",
                              "src": "23148:41:60"
                            }
                          ]
                        }
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 17731,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addDraftVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17645,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22667:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17644,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "22667:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17647,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22696:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17646,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "22696:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17649,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22720:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17648,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "22720:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17651,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 17731,
                  "src": "22740:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17650,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22740:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "22657:104:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17653,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "22781:0:60"
            },
            "scope": 17874,
            "src": "22636:798:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17760,
              "nodeType": "Block",
              "src": "23585:138:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17744,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "23613:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17743,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "23603:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17745,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23603:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17742,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "23595:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17746,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23595:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17747,
                  "nodeType": "ExpressionStatement",
                  "src": "23595:39:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 17748,
                                "name": "proposalsById",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 16055,
                                "src": "23645:13:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                                }
                              },
                              "id": 17750,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 17749,
                                "name": "_proposalId",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17733,
                                "src": "23659:11:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "23645:26:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                                "typeString": "struct DaoStructs.Proposal storage ref"
                              }
                            },
                            "id": 17751,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "votingRounds",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7963,
                            "src": "23645:39:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                              "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                            }
                          },
                          "id": 17753,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 17752,
                            "name": "_index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17739,
                            "src": "23685:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "23645:47:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage",
                            "typeString": "struct DaoStructs.Voting storage ref"
                          }
                        },
                        "id": 17754,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "commits",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7915,
                        "src": "23645:55:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                          "typeString": "mapping(address => bytes32)"
                        }
                      },
                      "id": 17756,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17755,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17737,
                        "src": "23701:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "23645:63:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17757,
                      "name": "_hash",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17735,
                      "src": "23711:5:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "23645:71:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17759,
                  "nodeType": "ExpressionStatement",
                  "src": "23645:71:60"
                }
              ]
            },
            "documentation": null,
            "id": 17761,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "commitVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17740,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17733,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23469:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17732,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23469:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17735,
                  "name": "_hash",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23498:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23498:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17737,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23521:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17736,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23521:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17739,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17761,
                  "src": "23545:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23545:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23459:106:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17741,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23585:0:60"
            },
            "scope": 17874,
            "src": "23440:283:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17792,
              "nodeType": "Block",
              "src": "23896:149:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17776,
                            "name": "CONTRACT_DAO_VOTING",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1355,
                            "src": "23924:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17775,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "23914:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17777,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "23914:30:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17774,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "23906:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17778,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23906:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17779,
                  "nodeType": "ExpressionStatement",
                  "src": "23906:39:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17787,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17765,
                        "src": "24015:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17788,
                        "name": "_vote",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17767,
                        "src": "24023:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 17789,
                        "name": "_weight",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17769,
                        "src": "24030:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17780,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "23956:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17782,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17781,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17763,
                              "src": "23970:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "23956:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17783,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "23956:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17785,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17784,
                          "name": "_index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17771,
                          "src": "23996:6:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "23956:47:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17786,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revealVote",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8238,
                      "src": "23956:58:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Voting_$7930_storage_ptr_$_t_address_$_t_bool_$_t_uint256_$returns$__$bound_to$_t_struct$_Voting_$7930_storage_ptr_$",
                        "typeString": "function (struct DaoStructs.Voting storage pointer,address,bool,uint256)"
                      }
                    },
                    "id": 17790,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "23956:82:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17791,
                  "nodeType": "ExpressionStatement",
                  "src": "23956:82:60"
                }
              ]
            },
            "documentation": null,
            "id": 17793,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17772,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17763,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23758:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17762,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "23758:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17765,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23787:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17764,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "23787:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17767,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23811:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17766,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "23811:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17769,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23831:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17768,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23831:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17771,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 17793,
                  "src": "23856:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17770,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23856:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "23748:128:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17773,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "23896:0:60"
            },
            "scope": 17874,
            "src": "23729:316:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17808,
              "nodeType": "Block",
              "src": "24114:93:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17800,
                            "name": "CONTRACT_DAO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1346,
                            "src": "24142:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17799,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24132:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17801,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24132:23:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17798,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24124:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24124:32:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17803,
                  "nodeType": "ExpressionStatement",
                  "src": "24124:32:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17805,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17795,
                        "src": "24188:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 17804,
                      "name": "closeProposalInternal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17643,
                      "src": "24166:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$",
                        "typeString": "function (bytes32)"
                      }
                    },
                    "id": 17806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24166:34:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17807,
                  "nodeType": "ExpressionStatement",
                  "src": "24166:34:60"
                }
              ]
            },
            "documentation": null,
            "id": 17809,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "closeProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17796,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17795,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17809,
                  "src": "24074:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17794,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24074:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24073:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17797,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24114:0:60"
            },
            "scope": 17874,
            "src": "24051:156:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17848,
              "nodeType": "Block",
              "src": "24278:348:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17816,
                            "name": "CONTRACT_DAO_VOTING_CLAIMS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1358,
                            "src": "24306:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17815,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24296:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17817,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24296:37:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17814,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24288:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24288:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17819,
                  "nodeType": "ExpressionStatement",
                  "src": "24288:46:60"
                },
                {
                  "assignments": [
                    17821
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 17821,
                      "name": "_currentState",
                      "nodeType": "VariableDeclaration",
                      "scope": 17849,
                      "src": "24344:21:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 17820,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "24344:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 17826,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 17822,
                        "name": "proposalsById",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16055,
                        "src": "24368:13:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                          "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                        }
                      },
                      "id": 17824,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 17823,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24382:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "24368:26:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                        "typeString": "struct DaoStructs.Proposal storage ref"
                      }
                    },
                    "id": 17825,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "currentState",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7949,
                    "src": "24368:39:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "24344:63:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17831,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24461:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17827,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "24417:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17829,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17828,
                          "name": "_currentState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17821,
                          "src": "24434:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24417:31:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17830,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "remove_item",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24621,
                      "src": "24417:43:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17832,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24417:56:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17833,
                  "nodeType": "ExpressionStatement",
                  "src": "24417:56:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 17838,
                        "name": "_proposalId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17811,
                        "src": "24532:11:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17834,
                          "name": "proposalsByState",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16059,
                          "src": "24483:16:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Bytes_$22605_storage_$",
                            "typeString": "mapping(bytes32 => struct DoublyLinkedList.Bytes storage ref)"
                          }
                        },
                        "id": 17836,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17835,
                          "name": "PROPOSAL_STATE_ARCHIVED",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1316,
                          "src": "24500:23:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24483:41:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 17837,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "24483:48:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Bytes_$22605_storage_ptr_$_t_bytes32_$returns$_t_bool_$bound_to$_t_struct$_Bytes_$22605_storage_ptr_$",
                        "typeString": "function (struct DoublyLinkedList.Bytes storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 17839,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24483:61:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17840,
                  "nodeType": "ExpressionStatement",
                  "src": "24483:61:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 17841,
                          "name": "proposalsById",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 16055,
                          "src": "24554:13:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                          }
                        },
                        "id": 17843,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17842,
                          "name": "_proposalId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17811,
                          "src": "24568:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24554:26:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                          "typeString": "struct DaoStructs.Proposal storage ref"
                        }
                      },
                      "id": 17844,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "currentState",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7949,
                      "src": "24554:39:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17845,
                      "name": "PROPOSAL_STATE_ARCHIVED",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1316,
                      "src": "24596:23:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "24554:65:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 17847,
                  "nodeType": "ExpressionStatement",
                  "src": "24554:65:60"
                }
              ]
            },
            "documentation": null,
            "id": 17849,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "archiveProposal",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17812,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17811,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17849,
                  "src": "24238:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17810,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24238:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24237:21:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17813,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24278:0:60"
            },
            "scope": 17874,
            "src": "24213:413:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17872,
              "nodeType": "Block",
              "src": "24722:142:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 17858,
                            "name": "CONTRACT_DAO_FUNDING_MANAGER",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1376,
                            "src": "24750:28:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 17857,
                          "name": "sender_is",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 18461,
                          "src": "24740:9:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$",
                            "typeString": "function (bytes32) view returns (bool)"
                          }
                        },
                        "id": 17859,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "24740:39:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 17856,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "24732:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 17860,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "24732:48:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17861,
                  "nodeType": "ExpressionStatement",
                  "src": "24732:48:60"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 17862,
                              "name": "proposalsById",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16055,
                              "src": "24790:13:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_Proposal_$7981_storage_$",
                                "typeString": "mapping(bytes32 => struct DaoStructs.Proposal storage ref)"
                              }
                            },
                            "id": 17864,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 17863,
                              "name": "_proposalId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 17851,
                              "src": "24804:11:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "24790:26:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage",
                              "typeString": "struct DaoStructs.Proposal storage ref"
                            }
                          },
                          "id": 17865,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "votingRounds",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7963,
                          "src": "24790:39:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.Voting storage ref)"
                          }
                        },
                        "id": 17867,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 17866,
                          "name": "_milestoneId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17853,
                          "src": "24830:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "24790:53:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Voting_$7930_storage",
                          "typeString": "struct DaoStructs.Voting storage ref"
                        }
                      },
                      "id": 17868,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "funded",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7929,
                      "src": "24790:60:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 17869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "24853:4:60",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "24790:67:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17871,
                  "nodeType": "ExpressionStatement",
                  "src": "24790:67:60"
                }
              ]
            },
            "documentation": null,
            "id": 17873,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "setMilestoneFunded",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17851,
                  "name": "_proposalId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17873,
                  "src": "24660:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 17850,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "24660:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17853,
                  "name": "_milestoneId",
                  "nodeType": "VariableDeclaration",
                  "scope": 17873,
                  "src": "24681:20:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17852,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "24681:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "24659:43:60"
            },
            "payable": false,
            "returnParameters": {
              "id": 17855,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "24722:0:60"
            },
            "scope": 17874,
            "src": "24632:232:60",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 17875,
        "src": "299:24567:60"
      }
    ],
    "src": "0:24867:60"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {
        "DoublyLinkedList": "0x8045c179449f1501786a1bc68224fc49f8463d08",
        "DaoStructs": "0xefd92aeabd90747620117fa2188697aef3043f6c"
      },
      "address": "0xb3c8d1ca97d2ae41dba1f4f6b93d2e51a7473274",
      "transactionHash": "0x53b3bab9695f06f6b341e6eb4bade35584b65455b16b6955197544c1b5b10866"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:12.930Z"
}