{
  "contractName": "DaoStructs",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voting",
          "type": "DaoStructs.Voting storage"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        }
      ],
      "name": "countVotes",
      "outputs": [
        {
          "name": "_for",
          "type": "uint256"
        },
        {
          "name": "_against",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voting",
          "type": "DaoStructs.Voting storage"
        },
        {
          "name": "_allUsers",
          "type": "address[]"
        },
        {
          "name": "_vote",
          "type": "bool"
        }
      ],
      "name": "listVotes",
      "outputs": [
        {
          "name": "_voters",
          "type": "address[]"
        },
        {
          "name": "_length",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voting",
          "type": "DaoStructs.Voting storage"
        },
        {
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "readVote",
      "outputs": [
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voting",
          "type": "DaoStructs.Voting storage"
        },
        {
          "name": "_voter",
          "type": "address"
        },
        {
          "name": "_vote",
          "type": "bool"
        },
        {
          "name": "_weight",
          "type": "uint256"
        }
      ],
      "name": "revealVote",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_version",
          "type": "DaoStructs.ProposalVersion storage"
        }
      ],
      "name": "readVersion",
      "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": "_proposal",
          "type": "DaoStructs.Proposal storage"
        },
        {
          "name": "_milestoneIndex",
          "type": "uint256"
        }
      ],
      "name": "readProposalMilestone",
      "outputs": [
        {
          "name": "_funding",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposal",
          "type": "DaoStructs.Proposal storage"
        },
        {
          "name": "_newDoc",
          "type": "bytes32"
        },
        {
          "name": "_newMilestoneFundings",
          "type": "uint256[]"
        },
        {
          "name": "_finalReward",
          "type": "uint256"
        }
      ],
      "name": "addProposalVersion",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x610d5d610030600b82828239805160001a6073146000811461002057610022565bfe5b5030600052607381538281f300730000000000000000000000000000000000000000301460806040526004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d31f641461009f5780631728cc36146101315780631a14c51b1461016f5780634bf150b9146101d2578063b31ee28c14610231578063ea496bc914610284578063f53380cf1461030c575b600080fd5b6100bd600480360381019080803590602001909291905050506103ac565b60405180856000191660001916815260200184815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561011a5780820151818401526020810190506100ff565b505050509050019550505050505060405180910390f35b6101596004803603810190808035906020019092919080359060200190929190505050610424565b6040518082815260200191505060405180910390f35b81801561017b57600080fd5b506101d060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001909291905050506104f3565b005b61021060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610591565b60405180831515151581526020018281526020019250505060405180910390f35b6102676004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061067b565b604051808381526020018281526020019250505060405180910390f35b81801561029057600080fd5b5061030a600480360381019080803590602001909291908035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919050505061089a565b005b61034e60048036038101908080359060200190929190803590602001908201803590602001919091929391929390803515159060200190929190505050610a2a565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561039757808201518184015260208101905061037c565b50505050905001935050505060405180910390f35b6000806060600084600001549350846001015492508460040180548060200260200160405190810160405280929190818152602001828054801561040f57602002820191906000526020600020905b8154815260200190600101908083116103fb575b50505050509150846003015490509193509193565b600080600084601301549150846009016000836000191660001916815260200190815260200160002060040180549050905080841115151561046557600080fd5b60006001026000191682600019161415151561048057600080fd5b808410156104c7578460090160008360001916600019168152602001908152602001600020600401848154811015156104b557fe5b906000526020600020015492506104eb565b84600901600083600019166000191681526020019081526020016000206003015492505b505092915050565b811561054457808460030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061058b565b808460040160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b60008060008460030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561062b578360030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060019150610674565b8360040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600091505b9250929050565b600080600080858590509150600090505b8181101561089057600087600301600088888581811015156106aa57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561078d57610786876003016000888885818110151561071f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485610ca390919063ffffffff16565b9350610883565b600087600401600088888581811015156107a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156108825761087f876004016000888885818110151561081857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610ca390919063ffffffff16565b92505b5b808060010191505061068c565b5050935093915050565b8360030173__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561091a57600080fd5b505af415801561092e573d6000803e3d6000fd5b505050506040513d602081101561094457600080fd5b810190808051906020019092919050505050828460090160008560001916600019168152602001908152602001600020600001816000191690555042846009016000856000191660001916815260200190815260200160002060010181905550815184600901600085600019166000191681526020019081526020016000206002018190555081846009016000856000191660001916815260200190815260200160002060040190805190602001906109fe929190610cbf565b508084600901600085600019166000191681526020019081526020016000206003018190555050505050565b606060008060008686905091506000925081604051908082528060200260200182016040528015610a6a5781602001602082028038833980820191505090505b509350600115158515151415610b8b57600090505b81811015610b865760008860030160008989858181101515610a9d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610b79578686828181101515610b0957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484815181101515610b3457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082806001019350505b8080600101915050610a7f565b610c98565b600090505b81811015610c975760008860040160008989858181101515610bae57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610c8a578686828181101515610c1a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484815181101515610c4557fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082806001019350505b8080600101915050610b90565b5b505094509492505050565b60008183019050828110151515610cb657fe5b80905092915050565b828054828255906000526020600020908101928215610cfb579160200282015b82811115610cfa578251825591602001919060010190610cdf565b5b509050610d089190610d0c565b5090565b610d2e91905b80821115610d2a576000816000905550600101610d12565b5090565b905600a165627a7a7230582031530698448369e2883d14036bdf4ff412b3c052aa2eeaa4c3e5b205d96a87a00029",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061009a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d31f641461009f5780631728cc36146101315780631a14c51b1461016f5780634bf150b9146101d2578063b31ee28c14610231578063ea496bc914610284578063f53380cf1461030c575b600080fd5b6100bd600480360381019080803590602001909291905050506103ac565b60405180856000191660001916815260200184815260200180602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561011a5780820151818401526020810190506100ff565b505050509050019550505050505060405180910390f35b6101596004803603810190808035906020019092919080359060200190929190505050610424565b6040518082815260200191505060405180910390f35b81801561017b57600080fd5b506101d060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803590602001909291905050506104f3565b005b61021060048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610591565b60405180831515151581526020018281526020019250505060405180910390f35b6102676004803603810190808035906020019092919080359060200190820180359060200191909192939192939050505061067b565b604051808381526020018281526020019250505060405180910390f35b81801561029057600080fd5b5061030a600480360381019080803590602001909291908035600019169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019092919050505061089a565b005b61034e60048036038101908080359060200190929190803590602001908201803590602001919091929391929390803515159060200190929190505050610a2a565b6040518080602001838152602001828103825284818151815260200191508051906020019060200280838360005b8381101561039757808201518184015260208101905061037c565b50505050905001935050505060405180910390f35b6000806060600084600001549350846001015492508460040180548060200260200160405190810160405280929190818152602001828054801561040f57602002820191906000526020600020905b8154815260200190600101908083116103fb575b50505050509150846003015490509193509193565b600080600084601301549150846009016000836000191660001916815260200190815260200160002060040180549050905080841115151561046557600080fd5b60006001026000191682600019161415151561048057600080fd5b808410156104c7578460090160008360001916600019168152602001908152602001600020600401848154811015156104b557fe5b906000526020600020015492506104eb565b84600901600083600019166000191681526020019081526020016000206003015492505b505092915050565b811561054457808460030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061058b565b808460040160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50505050565b60008060008460030160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561062b578360030160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060019150610674565b8360040160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600091505b9250929050565b600080600080858590509150600090505b8181101561089057600087600301600088888581811015156106aa57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561078d57610786876003016000888885818110151561071f57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485610ca390919063ffffffff16565b9350610883565b600087600401600088888581811015156107a357fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156108825761087f876004016000888885818110151561081857fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484610ca390919063ffffffff16565b92505b5b808060010191505061068c565b5050935093915050565b8360030173__DoublyLinkedList______________________63582f30b49091856040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083815260200182600019166000191681526020019250505060206040518083038186803b15801561091a57600080fd5b505af415801561092e573d6000803e3d6000fd5b505050506040513d602081101561094457600080fd5b810190808051906020019092919050505050828460090160008560001916600019168152602001908152602001600020600001816000191690555042846009016000856000191660001916815260200190815260200160002060010181905550815184600901600085600019166000191681526020019081526020016000206002018190555081846009016000856000191660001916815260200190815260200160002060040190805190602001906109fe929190610cbf565b508084600901600085600019166000191681526020019081526020016000206003018190555050505050565b606060008060008686905091506000925081604051908082528060200260200182016040528015610a6a5781602001602082028038833980820191505090505b509350600115158515151415610b8b57600090505b81811015610b865760008860030160008989858181101515610a9d57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610b79578686828181101515610b0957fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484815181101515610b3457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082806001019350505b8080600101915050610a7f565b610c98565b600090505b81811015610c975760008860040160008989858181101515610bae57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115610c8a578686828181101515610c1a57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484815181101515610c4557fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505082806001019350505b8080600101915050610b90565b5b505094509492505050565b60008183019050828110151515610cb657fe5b80905092915050565b828054828255906000526020600020908101928215610cfb579160200282015b82811115610cfa578251825591602001919060010190610cdf565b5b509050610d089190610d0c565b5090565b610d2e91905b80821115610d2a576000816000905550600101610d12565b5090565b905600a165627a7a7230582031530698448369e2883d14036bdf4ff412b3c052aa2eeaa4c3e5b205d96a87a00029",
  "sourceMap": "160:13237:23:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
  "deployedSourceMap": "160:13237:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7591:429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7591:429:23;;;;;;;;;;;;;;;;;;;;8184:713;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7289:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7289:296:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6861:422;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5497:512;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8903:623;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8903:623:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6081:774;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6081:774:23;;;;;;;;;;;;;;;;;;7591:429;7704:12;7730:16;7760:28;7802:20;7854:8;:20;;;7847:27;;7895:8;:16;;;7884:27;;7942:8;:26;;7921:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7993:8;:20;;;7978:35;;7591:429;;;;;:::o;8184:713::-;8313:16;8345:21;8401:23;8369:9;:22;;;8345:46;;8427:9;:26;;:41;8454:13;8427:41;;;;;;;;;;;;;;;;;:59;;:66;;;;8401:92;;8530:15;8511;:34;;8503:43;;;;;;;;311:3;303:12;;8564:28;;;:13;:28;;;;;8556:37;;;;;;;;8667:15;8649;:33;8645:246;;;8709:9;:26;;:41;8736:13;8709:41;;;;;;;;;;;;;;;;;:59;;8769:15;8709:76;;;;;;;;;;;;;;;;;;8698:87;;8645:246;;;8827:9;:26;;:41;8854:13;8827:41;;;;;;;;;;;;;;;;;:53;;;8816:64;;8645:246;8184:713;;;;;;:::o;7289:296::-;7449:5;7445:134;;;7497:7;7470;:16;;:24;7487:6;7470:24;;;;;;;;;;;;;;;:34;;;;7445:134;;;7561:7;7535;:15;;:23;7551:6;7535:23;;;;;;;;;;;;;;;:33;;;;7445:134;7289:296;;;;:::o;6861:422::-;6964:10;6976:15;7038:1;7011:7;:16;;:24;7028:6;7011:24;;;;;;;;;;;;;;;;:28;7007:270;;;7065:7;:16;;:24;7082:6;7065:24;;;;;;;;;;;;;;;;7055:34;;7111:4;7103:12;;7007:270;;;7156:7;:15;;:23;7172:6;7156:23;;;;;;;;;;;;;;;;7146:33;;7261:5;7253:13;;7007:270;6861:422;;;;;:::o;5497:512::-;5609:12;5623:16;5655:10;5699:9;5668;;:16;;5655:29;;5711:1;5699:13;;5694:309;5718:2;5714:1;:6;5694:309;;;5778:1;5745:7;:16;;:30;5762:9;;5772:1;5762:12;;;;;;;;;;;;;;;;;5745:30;;;;;;;;;;;;;;;;:34;5741:252;;;5806:40;5815:7;:16;;:30;5832:9;;5842:1;5832:12;;;;;;;;;;;;;;;;;5815:30;;;;;;;;;;;;;;;;5806:4;:8;;:40;;;;:::i;:::-;5799:47;;5741:252;;;5903:1;5871:7;:15;;:29;5887:9;;5897:1;5887:12;;;;;;;;;;;;;;;;;5871:29;;;;;;;;;;;;;;;;:33;5867:126;;;5935:43;5948:7;:15;;:29;5964:9;;5974:1;5964:12;;;;;;;;;;;;;;;;;5948:29;;;;;;;;;;;;;;;;5935:8;:12;;:43;;;;:::i;:::-;5924:54;;5867:126;5741:252;5722:3;;;;;;;5694:309;;;5497:512;;;;;;;;:::o;8903:623::-;9098:9;:29;;:36;;;;9135:7;9098:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9098:45:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9098:45:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9098:45:23;;;;;;;;;;;;;;;;;9203:7;9153:9;:26;;:35;9180:7;9153:35;;;;;;;;;;;;;;;;;:47;;:57;;;;;;;9266:3;9220:9;:26;;:35;9247:7;9220:35;;;;;;;;;;;;;;;;;:43;;:49;;;;9332:21;:28;9279:9;:26;;:35;9306:7;9279:35;;;;;;;;;;;;;;;;;:50;;:81;;;;9426:21;9370:9;:26;;:35;9397:7;9370:35;;;;;;;;;;;;;;;;;:53;;:77;;;;;;;;;;;;:::i;:::-;;9507:12;9457:9;:26;;:35;9484:7;9457:35;;;;;;;;;;;;;;;;;:47;;:62;;;;8903:623;;;;:::o;6081:774::-;6204:24;6230:15;6261:10;6300:9;6274;;:16;;6261:29;;6329:1;6319:11;;6364:2;6350:17;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;6350:17:23;;;;6340:27;;6390:4;6381:13;;:5;:13;;;6377:472;;;6419:1;6415:5;;6410:200;6426:2;6422:1;:6;6410:200;;;6490:1;6457:7;:16;;:30;6474:9;;6484:1;6474:12;;;;;;;;;;;;;;;;;6457:30;;;;;;;;;;;;;;;;:34;6453:143;;;6534:9;;6544:1;6534:12;;;;;;;;;;;;;;;;;6515:7;6523;6515:16;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;6568:9;;;;;;;6453:143;6430:3;;;;;;;6410:200;;;6377:472;;;6649:1;6645:5;;6640:199;6656:2;6652:1;:6;6640:199;;;6719:1;6687:7;:15;;:29;6703:9;;6713:1;6703:12;;;;;;;;;;;;;;;;;6687:29;;;;;;;;;;;;;;;;:33;6683:142;;;6763:9;;6773:1;6763:12;;;;;;;;;;;;;;;;;6744:7;6752;6744:16;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;6797:9;;;;;;;6683:142;6660:3;;;;;;;6640:199;;;6377:472;6081:774;;;;;;;;;:::o;1238:128:84:-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;160:13237:23:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol\";\nimport 'openzeppelin-solidity/contracts/math/SafeMath.sol';\n\nlibrary DaoStructs {\n    using DoublyLinkedList for DoublyLinkedList.Bytes;\n    using SafeMath for uint256;\n    bytes32 constant EMPTY_BYTES = bytes32(0x0);\n\n    struct PrlAction {\n        // UTC timestamp at which the PRL action was done\n        uint256 at;\n\n        // IPFS hash of the document summarizing the action\n        bytes32 doc;\n\n        // Type of action\n        // check PRL_ACTION_* in \"./../common/DaoConstants.sol\"\n        uint256 actionId;\n    }\n\n    struct Voting {\n        // UTC timestamp at which the voting round starts\n        uint256 startTime;\n\n        // Mapping of whether a commit was used in this voting round\n        mapping (bytes32 => bool) usedCommits;\n\n        // Mapping of commits by address. These are the commits during the commit phase in a voting round\n        // This only stores the most recent commit in the voting round\n        // In case a vote is edited, the previous commit is overwritten by the new commit\n        // Only this new commit is verified at the reveal phase\n        mapping (address => bytes32) commits;\n\n        // This mapping is updated after the reveal phase, when votes are revealed\n        // It is a mapping of address to weight of vote\n        // Weight implies the lockedDGDStake of the address, at the time of revealing\n        // If the address voted \"NO\", or didn't vote, this would be 0\n        mapping (address => uint256) yesVotes;\n\n        // This mapping is updated after the reveal phase, when votes are revealed\n        // It is a mapping of address to weight of vote\n        // Weight implies the lockedDGDStake of the address, at the time of revealing\n        // If the address voted \"YES\", or didn't vote, this would be 0\n        mapping (address => uint256) noVotes;\n\n        // Boolean whether the voting round passed or not\n        bool passed;\n\n        // Boolean whether the voting round results were claimed or not\n        // refer the claimProposalVotingResult function in \"./../interative/DaoVotingClaims.sol\"\n        bool claimed;\n\n        // Boolean whether the milestone following this voting round was funded or not\n        // The milestone is funded when the proposer calls claimFunding in \"./../interactive/DaoFundingManager.sol\"\n        bool funded;\n    }\n\n    struct ProposalVersion {\n        // IPFS doc hash of this version of the proposal\n        bytes32 docIpfsHash;\n\n        // UTC timestamp at which this version was created\n        uint256 created;\n\n        // The number of milestones in the proposal as per this version\n        uint256 milestoneCount;\n\n        // The final reward asked by the proposer for completion of the entire proposal\n        uint256 finalReward;\n\n        // List of fundings required by the proposal as per this version\n        // The numbers are in wei\n        uint256[] milestoneFundings;\n\n        // When a proposal is finalized (calling Dao.finalizeProposal), the proposer can no longer add proposal versions\n        // However, they can still add more details to this final proposal version, in the form of IPFS docs.\n        // These IPFS docs are stored in this array\n        bytes32[] moreDocs;\n    }\n\n    struct Proposal {\n        // ID of the proposal. Also the IPFS hash of the first ProposalVersion\n        bytes32 proposalId;\n\n        // current state of the proposal\n        // refer PROPOSAL_STATE_* in \"./../common/DaoConstants.sol\"\n        bytes32 currentState;\n\n        // UTC timestamp at which the proposal was created\n        uint256 timeCreated;\n\n        // DoublyLinkedList of IPFS doc hashes of the various versions of the proposal\n        DoublyLinkedList.Bytes proposalVersionDocs;\n\n        // Mapping of version (IPFS doc hash) to ProposalVersion struct\n        mapping (bytes32 => ProposalVersion) proposalVersions;\n\n        // Voting struct for the draft voting round\n        Voting draftVoting;\n\n        // Mapping of voting round index (starts from 0) to Voting struct\n        // votingRounds[0] is the Voting round of the proposal, which lasts for get_uint_config(CONFIG_VOTING_PHASE_TOTAL)\n        // votingRounds[i] for i>0 are the Interim Voting rounds of the proposal, which lasts for get_uint_config(CONFIG_INTERIM_PHASE_TOTAL)\n        mapping (uint256 => Voting) votingRounds;\n\n        // Every proposal has a collateral tied to it with a value of\n        // get_uint_config(CONFIG_PREPROPOSAL_COLLATERAL) (refer \"./../storage/DaoConfigsStorage.sol\")\n        // Collateral can be in different states\n        // refer COLLATERAL_STATUS_* in \"./../common/DaoConstants.sol\"\n        uint256 collateralStatus;\n        uint256 collateralAmount;\n\n        // The final version of the proposal\n        // Every proposal needs to be finalized before it can be voted on\n        // This is the IPFS doc hash of the final version\n        bytes32 finalVersion;\n\n        // List of PrlAction structs\n        // These are all the actions done by the PRL on the proposal\n        PrlAction[] prlActions;\n\n        // Address of the user who created the proposal\n        address proposer;\n\n        // Address of the moderator who endorsed the proposal\n        address endorser;\n\n        // Boolean whether the proposal is paused/stopped at the moment\n        bool isPausedOrStopped;\n\n        // Boolean whether the proposal was created by a founder role\n        bool isDigix;\n    }\n\n    function countVotes(Voting storage _voting, address[] _allUsers)\n        external\n        view\n        returns (uint256 _for, uint256 _against)\n    {\n        uint256 _n = _allUsers.length;\n        for (uint256 i = 0; i < _n; i++) {\n            if (_voting.yesVotes[_allUsers[i]] > 0) {\n                _for = _for.add(_voting.yesVotes[_allUsers[i]]);\n            } else if (_voting.noVotes[_allUsers[i]] > 0) {\n                _against = _against.add(_voting.noVotes[_allUsers[i]]);\n            }\n        }\n    }\n\n    // get the list of voters who voted _vote (true-yes/false-no)\n    function listVotes(Voting storage _voting, address[] _allUsers, bool _vote)\n        external\n        view\n        returns (address[] memory _voters, uint256 _length)\n    {\n        uint256 _n = _allUsers.length;\n        uint256 i;\n        _length = 0;\n        _voters = new address[](_n);\n        if (_vote == true) {\n            for (i = 0; i < _n; i++) {\n                if (_voting.yesVotes[_allUsers[i]] > 0) {\n                    _voters[_length] = _allUsers[i];\n                    _length++;\n                }\n            }\n        } else {\n            for (i = 0; i < _n; i++) {\n                if (_voting.noVotes[_allUsers[i]] > 0) {\n                    _voters[_length] = _allUsers[i];\n                    _length++;\n                }\n            }\n        }\n    }\n\n    function readVote(Voting storage _voting, address _voter)\n        public\n        view\n        returns (bool _vote, uint256 _weight)\n    {\n        if (_voting.yesVotes[_voter] > 0) {\n            _weight = _voting.yesVotes[_voter];\n            _vote = true;\n        } else {\n            _weight = _voting.noVotes[_voter]; // if _voter didnt vote at all, the weight will be 0 anyway\n            _vote = false;\n        }\n    }\n\n    function revealVote(\n        Voting storage _voting,\n        address _voter,\n        bool _vote,\n        uint256 _weight\n    )\n        public\n    {\n        if (_vote) {\n            _voting.yesVotes[_voter] = _weight;\n        } else {\n            _voting.noVotes[_voter] = _weight;\n        }\n    }\n\n    function readVersion(ProposalVersion storage _version)\n        public\n        view\n        returns (\n            bytes32 _doc,\n            uint256 _created,\n            uint256[] _milestoneFundings,\n            uint256 _finalReward\n        )\n    {\n        _doc = _version.docIpfsHash;\n        _created = _version.created;\n        _milestoneFundings = _version.milestoneFundings;\n        _finalReward = _version.finalReward;\n    }\n\n    // read the funding for a particular milestone of a finalized proposal\n    // if _milestoneId is the same as _milestoneCount, it returns the final reward\n    function readProposalMilestone(Proposal storage _proposal, uint256 _milestoneIndex)\n        public\n        view\n        returns (uint256 _funding)\n    {\n        bytes32 _finalVersion = _proposal.finalVersion;\n        uint256 _milestoneCount = _proposal.proposalVersions[_finalVersion].milestoneFundings.length;\n        require(_milestoneIndex <= _milestoneCount);\n        require(_finalVersion != EMPTY_BYTES); // the proposal must have been finalized\n\n        if (_milestoneIndex < _milestoneCount) {\n            _funding = _proposal.proposalVersions[_finalVersion].milestoneFundings[_milestoneIndex];\n        } else {\n            _funding = _proposal.proposalVersions[_finalVersion].finalReward;\n        }\n    }\n\n    function addProposalVersion(\n        Proposal storage _proposal,\n        bytes32 _newDoc,\n        uint256[] _newMilestoneFundings,\n        uint256 _finalReward\n    )\n        public\n    {\n        _proposal.proposalVersionDocs.append(_newDoc);\n        _proposal.proposalVersions[_newDoc].docIpfsHash = _newDoc;\n        _proposal.proposalVersions[_newDoc].created = now;\n        _proposal.proposalVersions[_newDoc].milestoneCount = _newMilestoneFundings.length;\n        _proposal.proposalVersions[_newDoc].milestoneFundings = _newMilestoneFundings;\n        _proposal.proposalVersions[_newDoc].finalReward = _finalReward;\n    }\n\n    struct SpecialProposal {\n        // ID of the special proposal\n        // This is the IPFS doc hash of the proposal\n        bytes32 proposalId;\n\n        // UTC timestamp at which the proposal was created\n        uint256 timeCreated;\n\n        // Voting struct for the special proposal\n        Voting voting;\n\n        // List of the new uint256 configs as per the special proposal\n        uint256[] uintConfigs;\n\n        // List of the new address configs as per the special proposal\n        address[] addressConfigs;\n\n        // List of the new bytes32 configs as per the special proposal\n        bytes32[] bytesConfigs;\n\n        // Address of the user who created the special proposal\n        // This address should also be in the ROLES_FOUNDERS group\n        // refer \"./../storage/DaoIdentityStorage.sol\"\n        address proposer;\n    }\n\n    // All configs are as per the DaoConfigsStorage values at the time when\n    // calculateGlobalRewardsBeforeNewQuarter is called by founder in that quarter\n    struct DaoQuarterInfo {\n        // The minimum quarter points required\n        // below this, reputation will be deducted\n        uint256 minimalParticipationPoint;\n\n        // The scaling factor for quarter point\n        uint256 quarterPointScalingFactor;\n\n        // The scaling factor for reputation point\n        uint256 reputationPointScalingFactor;\n\n        // The summation of effectiveDGDs in the previous quarter\n        // The effectiveDGDs represents the effective participation in DigixDAO in a quarter\n        // Which depends on lockedDGDStake, quarter point and reputation point\n        // This value is the summation of all participant effectiveDGDs\n        // It will be used to calculate the fraction of effectiveDGD a user has,\n        // which will determine his portion of DGX rewards for that quarter\n        uint256 totalEffectiveDGDPreviousQuarter;\n\n        // The minimum moderator quarter point required\n        // below this, reputation will be deducted for moderators\n        uint256 moderatorMinimalParticipationPoint;\n\n        // the scaling factor for moderator quarter point\n        uint256 moderatorQuarterPointScalingFactor;\n\n        // the scaling factor for moderator reputation point\n        uint256 moderatorReputationPointScalingFactor;\n\n        // The summation of effectiveDGDs (only specific to moderators)\n        uint256 totalEffectiveModeratorDGDLastQuarter;\n\n        // UTC timestamp from which the DGX rewards for the previous quarter are distributable to Holders\n        uint256 dgxDistributionDay;\n\n        // This is the rewards pool for the previous quarter. This is the sum of the DGX fees coming in from the collector, and the demurrage that has incurred\n        // when user call claimRewards() in the previous quarter.\n        // more graphical explanation: https://ipfs.io/ipfs/QmZDgFFMbyF3dvuuDfoXv5F6orq4kaDPo7m3QvnseUguzo\n        uint256 dgxRewardsPoolLastQuarter;\n\n        // The summation of all dgxRewardsPoolLastQuarter up until this quarter\n        uint256 sumRewardsFromBeginning;\n    }\n\n    // There are many function calls where all calculations/summations cannot be done in one transaction\n    // and require multiple transactions.\n    // This struct stores the intermediate results in between the calculating transactions\n    // These intermediate results are stored in IntermediateResultsStorage\n    struct IntermediateResults {\n        // weight of \"FOR\" votes counted up until the current calculation step\n        uint256 currentForCount;\n\n        // weight of \"AGAINST\" votes counted up until the current calculation step\n        uint256 currentAgainstCount;\n\n        // summation of effectiveDGDs up until the iteration of calculation\n        uint256 currentSumOfEffectiveBalance;\n\n        // Address of user until which the calculation has been done\n        address countedUntil;\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
    "exportedSymbols": {
      "DaoStructs": [
        8451
      ]
    },
    "id": 8452,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7885,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:23"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 7886,
        "nodeType": "ImportDirective",
        "scope": 8452,
        "sourceUnit": 25117,
        "src": "26:72:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 7887,
        "nodeType": "ImportDirective",
        "scope": 8452,
        "sourceUnit": 25612,
        "src": "99:59:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 8451,
        "linearizedBaseContracts": [
          8451
        ],
        "name": "DaoStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 7890,
            "libraryName": {
              "contractScope": null,
              "id": 7888,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "191:16:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "185:50:23",
            "typeName": {
              "contractScope": null,
              "id": 7889,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "212:22:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 7893,
            "libraryName": {
              "contractScope": null,
              "id": 7891,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25611,
              "src": "246:8:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$25611",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "240:27:23",
            "typeName": {
              "id": 7892,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "259:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": true,
            "id": 7898,
            "name": "EMPTY_BYTES",
            "nodeType": "VariableDeclaration",
            "scope": 8451,
            "src": "272:43:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7894,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "272:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 7896,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "311:3:23",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 7895,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "303:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 7897,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "303:12:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "DaoStructs.PrlAction",
            "id": 7905,
            "members": [
              {
                "constant": false,
                "id": 7900,
                "name": "at",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "407:10:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7899,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "407:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7902,
                "name": "doc",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "488:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7901,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "488:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7904,
                "name": "actionId",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "600:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7903,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "600:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PrlAction",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "322:301:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.Voting",
            "id": 7930,
            "members": [
              {
                "constant": false,
                "id": 7907,
                "name": "startTime",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "711:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7906,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "711:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7911,
                "name": "usedCommits",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "808:37:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                  "typeString": "mapping(bytes32 => bool)"
                },
                "typeName": {
                  "id": 7910,
                  "keyType": {
                    "id": 7908,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "817:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "808:25:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                    "typeString": "mapping(bytes32 => bool)"
                  },
                  "valueType": {
                    "id": 7909,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "828:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7915,
                "name": "commits",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1187:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                  "typeString": "mapping(address => bytes32)"
                },
                "typeName": {
                  "id": 7914,
                  "keyType": {
                    "id": 7912,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1187:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                    "typeString": "mapping(address => bytes32)"
                  },
                  "valueType": {
                    "id": 7913,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1207:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7919,
                "name": "yesVotes",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1529:37:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 7918,
                  "keyType": {
                    "id": 7916,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1538:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1529:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 7917,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1549:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7923,
                "name": "noVotes",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1873:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 7922,
                  "keyType": {
                    "id": 7920,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1882:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1873:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 7921,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7925,
                "name": "passed",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1978:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7924,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1978:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7927,
                "name": "claimed",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "2169:12:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7926,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2169:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7929,
                "name": "funded",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "2395:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7928,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2395:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Voting",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "629:1784:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.ProposalVersion",
            "id": 7945,
            "members": [
              {
                "constant": false,
                "id": 7932,
                "name": "docIpfsHash",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2509:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7931,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2509:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7934,
                "name": "created",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2598:15:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7933,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2598:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7936,
                "name": "milestoneCount",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2696:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7935,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2696:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7938,
                "name": "finalReward",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2817:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7937,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2817:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7941,
                "name": "milestoneFundings",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2954:27:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 7939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2954:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7940,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2954:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7944,
                "name": "moreDocs",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "3275:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 7942,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3275:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7943,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "3275:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "ProposalVersion",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "2419:881:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.Proposal",
            "id": 7981,
            "members": [
              {
                "constant": false,
                "id": 7947,
                "name": "proposalId",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3411:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7946,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3411:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7949,
                "name": "currentState",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3549:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7948,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3549:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7951,
                "name": "timeCreated",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3639:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7950,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3639:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7953,
                "name": "proposalVersionDocs",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3756:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Bytes"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7952,
                  "name": "DoublyLinkedList.Bytes",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22605,
                  "src": "3756:22:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7957,
                "name": "proposalVersions",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3881:53:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                  "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion)"
                },
                "typeName": {
                  "id": 7956,
                  "keyType": {
                    "id": 7954,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "3881:36:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                    "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 7955,
                    "name": "ProposalVersion",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7945,
                    "src": "3901:15:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                      "typeString": "struct DaoStructs.ProposalVersion"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7959,
                "name": "draftVoting",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3997:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                  "typeString": "struct DaoStructs.Voting"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7958,
                  "name": "Voting",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7930,
                  "src": "3997:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7963,
                "name": "votingRounds",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4365:40:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                  "typeString": "mapping(uint256 => struct DaoStructs.Voting)"
                },
                "typeName": {
                  "id": 7962,
                  "keyType": {
                    "id": 7960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4374:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "4365:27:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                    "typeString": "mapping(uint256 => struct DaoStructs.Voting)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 7961,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "4385:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7965,
                "name": "collateralStatus",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4709:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7964,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4709:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7967,
                "name": "collateralAmount",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4743:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7966,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4743:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7969,
                "name": "finalVersion",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4955:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7968,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4955:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7972,
                "name": "prlActions",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5092:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                  "typeString": "struct DaoStructs.PrlAction[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 7970,
                    "name": "PrlAction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7905,
                    "src": "5092:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                      "typeString": "struct DaoStructs.PrlAction"
                    }
                  },
                  "id": 7971,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "5092:11:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                    "typeString": "struct DaoStructs.PrlAction[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7974,
                "name": "proposer",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5181:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7973,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5181:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7976,
                "name": "endorser",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5270:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7975,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5270:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7978,
                "name": "isPausedOrStopped",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5369:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7977,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "5369:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7980,
                "name": "isDigix",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5472:12:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7979,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "5472:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Proposal",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "3306:2185:23",
            "visibility": "public"
          },
          {
            "body": {
              "id": 8054,
              "nodeType": "Block",
              "src": "5645:364:23",
              "statements": [
                {
                  "assignments": [
                    7994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7994,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "5655:10:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7993,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5655:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7997,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7995,
                      "name": "_allUsers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7986,
                      "src": "5668:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                        "typeString": "address[] calldata"
                      }
                    },
                    "id": 7996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "5668:16:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5655:29:23"
                },
                {
                  "body": {
                    "id": 8052,
                    "nodeType": "Block",
                    "src": "5727:276:23",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8015,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8008,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7983,
                                "src": "5745:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8009,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "5745:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8013,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8010,
                                "name": "_allUsers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7986,
                                "src": "5762:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 8012,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8011,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7999,
                                "src": "5772:1:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5762:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5745:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 8014,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5778:1:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5745:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8036,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8029,
                                  "name": "_voting",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7983,
                                  "src": "5871:7:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                    "typeString": "struct DaoStructs.Voting storage pointer"
                                  }
                                },
                                "id": 8030,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "noVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7923,
                                "src": "5871:15:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                  "typeString": "mapping(address => uint256)"
                                }
                              },
                              "id": 8034,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 8031,
                                  "name": "_allUsers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7986,
                                  "src": "5887:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 8033,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 8032,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7999,
                                  "src": "5897:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "5887:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5871:29:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8035,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5903:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5871:33:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 8050,
                          "nodeType": "IfStatement",
                          "src": "5867:126:23",
                          "trueBody": {
                            "id": 8049,
                            "nodeType": "Block",
                            "src": "5906:87:23",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8047,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 8037,
                                    "name": "_against",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7991,
                                    "src": "5924:8:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8040,
                                            "name": "_voting",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7983,
                                            "src": "5948:7:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                              "typeString": "struct DaoStructs.Voting storage pointer"
                                            }
                                          },
                                          "id": 8041,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "noVotes",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 7923,
                                          "src": "5948:15:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                            "typeString": "mapping(address => uint256)"
                                          }
                                        },
                                        "id": 8045,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 8042,
                                            "name": "_allUsers",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7986,
                                            "src": "5964:9:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                              "typeString": "address[] calldata"
                                            }
                                          },
                                          "id": 8044,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 8043,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7999,
                                            "src": "5974:1:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "5964:12:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5948:29:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8038,
                                        "name": "_against",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7991,
                                        "src": "5935:8:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8039,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 25610,
                                      "src": "5935:12:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 8046,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5935:43:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "5924:54:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 8048,
                                "nodeType": "ExpressionStatement",
                                "src": "5924:54:23"
                              }
                            ]
                          }
                        },
                        "id": 8051,
                        "nodeType": "IfStatement",
                        "src": "5741:252:23",
                        "trueBody": {
                          "id": 8028,
                          "nodeType": "Block",
                          "src": "5781:80:23",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 8026,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 8016,
                                  "name": "_for",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7989,
                                  "src": "5799:4:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8019,
                                          "name": "_voting",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7983,
                                          "src": "5815:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                            "typeString": "struct DaoStructs.Voting storage pointer"
                                          }
                                        },
                                        "id": 8020,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "yesVotes",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7919,
                                        "src": "5815:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                          "typeString": "mapping(address => uint256)"
                                        }
                                      },
                                      "id": 8024,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8021,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7986,
                                          "src": "5832:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8023,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8022,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7999,
                                          "src": "5842:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5832:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "5815:30:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8017,
                                      "name": "_for",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7989,
                                      "src": "5806:4:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8018,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25610,
                                    "src": "5806:8:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 8025,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5806:40:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5799:47:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 8027,
                              "nodeType": "ExpressionStatement",
                              "src": "5799:47:23"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8002,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7999,
                      "src": "5714:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8003,
                      "name": "_n",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7994,
                      "src": "5718:2:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5714:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8053,
                  "initializationExpression": {
                    "assignments": [
                      7999
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7999,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 8055,
                        "src": "5699:9:23",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7998,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5699:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 8001,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5711:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5699:13:23"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5722:3:23",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8005,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7999,
                        "src": "5722:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8007,
                    "nodeType": "ExpressionStatement",
                    "src": "5722:3:23"
                  },
                  "nodeType": "ForStatement",
                  "src": "5694:309:23"
                }
              ]
            },
            "documentation": null,
            "id": 8055,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "countVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7987,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7983,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5517:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7982,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "5517:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7986,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5541:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7984,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5541:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7985,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5541:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5516:45:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7989,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5609:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5609:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7991,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5623:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7990,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5623:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5608:32:23"
            },
            "scope": 8451,
            "src": "5497:512:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8162,
              "nodeType": "Block",
              "src": "6251:604:23",
              "statements": [
                {
                  "assignments": [
                    8071
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8071,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 8163,
                      "src": "6261:10:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8070,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6261:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8074,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 8072,
                      "name": "_allUsers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8060,
                      "src": "6274:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                        "typeString": "address[] calldata"
                      }
                    },
                    "id": 8073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "6274:16:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6261:29:23"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8076,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 8163,
                      "src": "6300:9:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8075,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6300:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8077,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6300:9:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8078,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8068,
                      "src": "6319:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8079,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6329:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6319:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8081,
                  "nodeType": "ExpressionStatement",
                  "src": "6319:11:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8088,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8082,
                      "name": "_voters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8066,
                      "src": "6340:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8086,
                          "name": "_n",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8071,
                          "src": "6364:2:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 8085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6350:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (address[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 8083,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6354:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 8084,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "6354:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        }
                      },
                      "id": 8087,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6350:17:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6340:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 8089,
                  "nodeType": "ExpressionStatement",
                  "src": "6340:27:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 8092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8090,
                      "name": "_vote",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8062,
                      "src": "6381:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 8091,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6390:4:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "6381:13:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8160,
                    "nodeType": "Block",
                    "src": "6626:223:23",
                    "statements": [
                      {
                        "body": {
                          "id": 8158,
                          "nodeType": "Block",
                          "src": "6665:174:23",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8144,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8137,
                                      "name": "_voting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8057,
                                      "src": "6687:7:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                        "typeString": "struct DaoStructs.Voting storage pointer"
                                      }
                                    },
                                    "id": 8138,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "noVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7923,
                                    "src": "6687:15:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 8142,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 8139,
                                      "name": "_allUsers",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8060,
                                      "src": "6703:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 8141,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 8140,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8076,
                                      "src": "6713:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6703:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6687:29:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 8143,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6719:1:23",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "6687:33:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 8157,
                              "nodeType": "IfStatement",
                              "src": "6683:142:23",
                              "trueBody": {
                                "id": 8156,
                                "nodeType": "Block",
                                "src": "6722:103:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8151,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8145,
                                          "name": "_voters",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8066,
                                          "src": "6744:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 8147,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8146,
                                          "name": "_length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8068,
                                          "src": "6752:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "6744:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8148,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8060,
                                          "src": "6763:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8150,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8149,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8076,
                                          "src": "6773:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6763:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "src": "6744:31:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 8152,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6744:31:23"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8154,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "6797:9:23",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 8153,
                                        "name": "_length",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8068,
                                        "src": "6797:7:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8155,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6797:9:23"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8131,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8076,
                            "src": "6652:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 8132,
                            "name": "_n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8071,
                            "src": "6656:2:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6652:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8159,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8129,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 8127,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6645:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8128,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6649:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "6645:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8130,
                          "nodeType": "ExpressionStatement",
                          "src": "6645:5:23"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "6660:3:23",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 8134,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6660:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8136,
                          "nodeType": "ExpressionStatement",
                          "src": "6660:3:23"
                        },
                        "nodeType": "ForStatement",
                        "src": "6640:199:23"
                      }
                    ]
                  },
                  "id": 8161,
                  "nodeType": "IfStatement",
                  "src": "6377:472:23",
                  "trueBody": {
                    "id": 8126,
                    "nodeType": "Block",
                    "src": "6396:224:23",
                    "statements": [
                      {
                        "body": {
                          "id": 8124,
                          "nodeType": "Block",
                          "src": "6435:175:23",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8110,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8103,
                                      "name": "_voting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8057,
                                      "src": "6457:7:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                        "typeString": "struct DaoStructs.Voting storage pointer"
                                      }
                                    },
                                    "id": 8104,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "yesVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7919,
                                    "src": "6457:16:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 8108,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 8105,
                                      "name": "_allUsers",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8060,
                                      "src": "6474:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 8107,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 8106,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8076,
                                      "src": "6484:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6474:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6457:30:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 8109,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6490:1:23",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "6457:34:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 8123,
                              "nodeType": "IfStatement",
                              "src": "6453:143:23",
                              "trueBody": {
                                "id": 8122,
                                "nodeType": "Block",
                                "src": "6493:103:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8117,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8111,
                                          "name": "_voters",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8066,
                                          "src": "6515:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 8113,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8112,
                                          "name": "_length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8068,
                                          "src": "6523:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "6515:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8114,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8060,
                                          "src": "6534:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8116,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8115,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8076,
                                          "src": "6544:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6534:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "src": "6515:31:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 8118,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6515:31:23"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8120,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "6568:9:23",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 8119,
                                        "name": "_length",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8068,
                                        "src": "6568:7:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8121,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6568:9:23"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8099,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8097,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8076,
                            "src": "6422:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 8098,
                            "name": "_n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8071,
                            "src": "6426:2:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6422:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8125,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 8093,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6415:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8094,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6419:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "6415:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8096,
                          "nodeType": "ExpressionStatement",
                          "src": "6415:5:23"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "6430:3:23",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 8100,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6430:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8102,
                          "nodeType": "ExpressionStatement",
                          "src": "6430:3:23"
                        },
                        "nodeType": "ForStatement",
                        "src": "6410:200:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8163,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8063,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8057,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6100:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8056,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "6100:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8060,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6124:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8058,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6124:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 8059,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6124:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8062,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6145:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8061,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6145:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6099:57:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8066,
                  "name": "_voters",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6204:24:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8064,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6204:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 8065,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6204:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8068,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6230:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8067,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6230:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6203:43:23"
            },
            "scope": 8451,
            "src": "6081:774:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8205,
              "nodeType": "Block",
              "src": "6997:286:23",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8174,
                          "name": "_voting",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8165,
                          "src": "7011:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                            "typeString": "struct DaoStructs.Voting storage pointer"
                          }
                        },
                        "id": 8175,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "yesVotes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7919,
                        "src": "7011:16:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 8177,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8176,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8167,
                        "src": "7028:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7011:24:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8178,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7038:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7011:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8203,
                    "nodeType": "Block",
                    "src": "7132:145:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8197,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8192,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8172,
                            "src": "7146:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8193,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8165,
                                "src": "7156:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8194,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "7156:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8196,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8195,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8167,
                              "src": "7172:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7156:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7146:33:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8198,
                        "nodeType": "ExpressionStatement",
                        "src": "7146:33:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8199,
                            "name": "_vote",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8170,
                            "src": "7253:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 8200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7261:5:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "7253:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8202,
                        "nodeType": "ExpressionStatement",
                        "src": "7253:13:23"
                      }
                    ]
                  },
                  "id": 8204,
                  "nodeType": "IfStatement",
                  "src": "7007:270:23",
                  "trueBody": {
                    "id": 8191,
                    "nodeType": "Block",
                    "src": "7041:85:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8180,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8172,
                            "src": "7055:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8181,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8165,
                                "src": "7065:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8182,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "7065:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8184,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8183,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8167,
                              "src": "7082:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7065:24:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7055:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8186,
                        "nodeType": "ExpressionStatement",
                        "src": "7055:34:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8187,
                            "name": "_vote",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8170,
                            "src": "7103:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 8188,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7111:4:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "7103:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8190,
                        "nodeType": "ExpressionStatement",
                        "src": "7103:12:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8206,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8165,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6879:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8164,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "6879:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8167,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6903:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6903:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6878:40:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8170,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6964:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8169,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6964:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8172,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6976:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8171,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6976:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6963:29:23"
            },
            "scope": 8451,
            "src": "6861:422:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8237,
              "nodeType": "Block",
              "src": "7435:150:23",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 8217,
                    "name": "_vote",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8212,
                    "src": "7449:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8235,
                    "nodeType": "Block",
                    "src": "7521:58:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8227,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8208,
                                "src": "7535:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8230,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "7535:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8231,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8229,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8210,
                              "src": "7551:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7535:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 8232,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8214,
                            "src": "7561:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7535:33:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8234,
                        "nodeType": "ExpressionStatement",
                        "src": "7535:33:23"
                      }
                    ]
                  },
                  "id": 8236,
                  "nodeType": "IfStatement",
                  "src": "7445:134:23",
                  "trueBody": {
                    "id": 8226,
                    "nodeType": "Block",
                    "src": "7456:59:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8224,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8218,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8208,
                                "src": "7470:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8221,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "7470:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8222,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8220,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8210,
                              "src": "7487:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7470:24:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 8223,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8214,
                            "src": "7497:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7470:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8225,
                        "nodeType": "ExpressionStatement",
                        "src": "7470:34:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8238,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8208,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7318:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8207,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "7318:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8210,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7350:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7350:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8212,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7374:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8211,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7374:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8214,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7394:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7394:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7308:107:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8216,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7435:0:23"
            },
            "scope": 8451,
            "src": "7289:296:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8272,
              "nodeType": "Block",
              "src": "7837:183:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8255,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8252,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8243,
                      "src": "7847:4:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8253,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7854:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "docIpfsHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7932,
                      "src": "7854:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7847:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8256,
                  "nodeType": "ExpressionStatement",
                  "src": "7847:27:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8257,
                      "name": "_created",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8245,
                      "src": "7884:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8258,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7895:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8259,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "created",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7934,
                      "src": "7895:16:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7884:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8261,
                  "nodeType": "ExpressionStatement",
                  "src": "7884:27:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8262,
                      "name": "_milestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8248,
                      "src": "7921:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8263,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7942:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8264,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "7942:26:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "7921:47:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 8266,
                  "nodeType": "ExpressionStatement",
                  "src": "7921:47:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8267,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "7978:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8268,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7993:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8269,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "7993:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7978:35:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8271,
                  "nodeType": "ExpressionStatement",
                  "src": "7978:35:23"
                }
              ]
            },
            "documentation": null,
            "id": 8273,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8241,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8240,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7612:32:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                    "typeString": "struct DaoStructs.ProposalVersion"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8239,
                    "name": "ProposalVersion",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7945,
                    "src": "7612:15:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                      "typeString": "struct DaoStructs.ProposalVersion"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7611:34:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8243,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7704:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8242,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7704:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8245,
                  "name": "_created",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7730:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8244,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7730:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8248,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7760:28:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8246,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "7760:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8247,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7760:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8250,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7802:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8249,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7802:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7690:142:23"
            },
            "scope": 8451,
            "src": "7591:429:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8332,
              "nodeType": "Block",
              "src": "8335:562:23",
              "statements": [
                {
                  "assignments": [
                    8283
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8283,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 8333,
                      "src": "8345:21:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 8282,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8345:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8286,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 8284,
                      "name": "_proposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8275,
                      "src": "8369:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal storage pointer"
                      }
                    },
                    "id": 8285,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "8369:22:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8345:46:23"
                },
                {
                  "assignments": [
                    8288
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8288,
                      "name": "_milestoneCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 8333,
                      "src": "8401:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8287,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8401:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8295,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8289,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8275,
                            "src": "8427:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8290,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "8427:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8292,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8291,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8283,
                          "src": "8454:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8427:41:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8293,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "8427:59:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 8294,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8427:66:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8401:92:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8297,
                          "name": "_milestoneIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8277,
                          "src": "8511:15:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8298,
                          "name": "_milestoneCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8288,
                          "src": "8530:15:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8511:34:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8296,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8503:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8503:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8301,
                  "nodeType": "ExpressionStatement",
                  "src": "8503:43:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8305,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8303,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8283,
                          "src": "8564:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8304,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7898,
                          "src": "8581:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "8564:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8302,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8556:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8556:37:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8307,
                  "nodeType": "ExpressionStatement",
                  "src": "8556:37:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8308,
                      "name": "_milestoneIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8277,
                      "src": "8649:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8309,
                      "name": "_milestoneCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8288,
                      "src": "8667:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8649:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8330,
                    "nodeType": "Block",
                    "src": "8802:89:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8322,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "8816:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8323,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8275,
                                  "src": "8827:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 8324,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalVersions",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7957,
                                "src": "8827:26:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                                }
                              },
                              "id": 8326,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8325,
                                "name": "_finalVersion",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8283,
                                "src": "8854:13:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8827:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                                "typeString": "struct DaoStructs.ProposalVersion storage ref"
                              }
                            },
                            "id": 8327,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "finalReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7938,
                            "src": "8827:53:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8816:64:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8329,
                        "nodeType": "ExpressionStatement",
                        "src": "8816:64:23"
                      }
                    ]
                  },
                  "id": 8331,
                  "nodeType": "IfStatement",
                  "src": "8645:246:23",
                  "trueBody": {
                    "id": 8321,
                    "nodeType": "Block",
                    "src": "8684:112:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8319,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8311,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "8698:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8312,
                                    "name": "_proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8275,
                                    "src": "8709:9:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                      "typeString": "struct DaoStructs.Proposal storage pointer"
                                    }
                                  },
                                  "id": 8313,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "proposalVersions",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7957,
                                  "src": "8709:26:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                                  }
                                },
                                "id": 8315,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 8314,
                                  "name": "_finalVersion",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8283,
                                  "src": "8736:13:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8709:41:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                                  "typeString": "struct DaoStructs.ProposalVersion storage ref"
                                }
                              },
                              "id": 8316,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "milestoneFundings",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7941,
                              "src": "8709:59:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                "typeString": "uint256[] storage ref"
                              }
                            },
                            "id": 8318,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8317,
                              "name": "_milestoneIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8277,
                              "src": "8769:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8709:76:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8698:87:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8320,
                        "nodeType": "ExpressionStatement",
                        "src": "8698:87:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8333,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8275,
                  "name": "_proposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8215:26:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                    "typeString": "struct DaoStructs.Proposal"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8274,
                    "name": "Proposal",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7981,
                    "src": "8215:8:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                      "typeString": "struct DaoStructs.Proposal"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8277,
                  "name": "_milestoneIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8243:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8276,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8243:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8214:53:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8280,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8313:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8279,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8313:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8312:18:23"
            },
            "scope": 8451,
            "src": "8184:713:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8399,
              "nodeType": "Block",
              "src": "9088:438:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8350,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8337,
                        "src": "9135:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8345,
                          "name": "_proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8335,
                          "src": "9098:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                            "typeString": "struct DaoStructs.Proposal storage pointer"
                          }
                        },
                        "id": 8348,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "proposalVersionDocs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7953,
                        "src": "9098:29:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 8349,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "9098:36:23",
                      "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": 8351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9098:45:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8352,
                  "nodeType": "ExpressionStatement",
                  "src": "9098:45:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8360,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8353,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9153:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8356,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9153:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8357,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8355,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9180:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9153:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8358,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "docIpfsHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7932,
                      "src": "9153:47:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8359,
                      "name": "_newDoc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8337,
                      "src": "9203:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9153:57:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8361,
                  "nodeType": "ExpressionStatement",
                  "src": "9153:57:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8362,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9220:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8365,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9220:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8366,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8364,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9247:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9220:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8367,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "created",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7934,
                      "src": "9220:43:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8368,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "9266:3:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9220:49:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8370,
                  "nodeType": "ExpressionStatement",
                  "src": "9220:49:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8371,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9279:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8374,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9279:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8375,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8373,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9306:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9279:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8376,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7936,
                      "src": "9279:50:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8377,
                        "name": "_newMilestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8340,
                        "src": "9332:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 8378,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9332:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9279:81:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8380,
                  "nodeType": "ExpressionStatement",
                  "src": "9279:81:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8381,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9370:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8384,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9370:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8385,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8383,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9397:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9370:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8386,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "9370:53:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8387,
                      "name": "_newMilestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8340,
                      "src": "9426:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "9370:77:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 8389,
                  "nodeType": "ExpressionStatement",
                  "src": "9370:77:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8390,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9457:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8393,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9457:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8394,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8392,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9484:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9457:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8395,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "9457:47:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8396,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8342,
                      "src": "9507:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9457:62:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8398,
                  "nodeType": "ExpressionStatement",
                  "src": "9457:62:23"
                }
              ]
            },
            "documentation": null,
            "id": 8400,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8335,
                  "name": "_proposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "8940:26:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                    "typeString": "struct DaoStructs.Proposal"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8334,
                    "name": "Proposal",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7981,
                    "src": "8940:8:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                      "typeString": "struct DaoStructs.Proposal"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8337,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "8976:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8336,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8976:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8340,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "9001:31:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8338,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "9001:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8339,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9001:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8342,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "9042:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8341,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9042:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8930:138:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9088:0:23"
            },
            "scope": 8451,
            "src": "8903:623:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.SpecialProposal",
            "id": 8418,
            "members": [
              {
                "constant": false,
                "id": 8402,
                "name": "proposalId",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9656:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 8401,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "9656:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8404,
                "name": "timeCreated",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9744:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8403,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "9744:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8406,
                "name": "voting",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9824:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                  "typeString": "struct DaoStructs.Voting"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 8405,
                  "name": "Voting",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7930,
                  "src": "9824:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8409,
                "name": "uintConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9919:21:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8407,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9919:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8408,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "9919:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8412,
                "name": "addressConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10022:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                  "typeString": "address[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10022:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 8411,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "10022:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                    "typeString": "address[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8415,
                "name": "bytesConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10128:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8413,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10128:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8414,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "10128:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8417,
                "name": "proposer",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10347:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 8416,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "10347:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "SpecialProposal",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "9532:838:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.DaoQuarterInfo",
            "id": 8441,
            "members": [
              {
                "constant": false,
                "id": 8420,
                "name": "minimalParticipationPoint",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10665:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8419,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10665:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8422,
                "name": "quarterPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10757:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8421,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10757:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8424,
                "name": "reputationPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10852:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8423,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10852:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8426,
                "name": "totalEffectiveDGDPreviousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11366:40:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8425,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11366:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8428,
                "name": "moderatorMinimalParticipationPoint",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11539:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8427,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11539:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8430,
                "name": "moderatorQuarterPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11650:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8429,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11650:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8432,
                "name": "moderatorReputationPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11764:45:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8431,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11764:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8434,
                "name": "totalEffectiveModeratorDGDLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11892:45:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8433,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11892:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8436,
                "name": "dgxDistributionDay",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12054:26:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8435,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12054:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8438,
                "name": "dgxRewardsPoolLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12424:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8437,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12424:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8440,
                "name": "sumRewardsFromBeginning",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12548:31:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8439,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12548:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DaoQuarterInfo",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "10535:2051:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.IntermediateResults",
            "id": 8450,
            "members": [
              {
                "constant": false,
                "id": 8443,
                "name": "currentForCount",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13021:23:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8442,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13021:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8445,
                "name": "currentAgainstCount",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13138:27:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8444,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13138:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8447,
                "name": "currentSumOfEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13252:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8446,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13252:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8449,
                "name": "countedUntil",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13368:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 8448,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "13368:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IntermediateResults",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "12905:490:23",
            "visibility": "public"
          }
        ],
        "scope": 8452,
        "src": "160:13237:23"
      }
    ],
    "src": "0:13398:23"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
    "exportedSymbols": {
      "DaoStructs": [
        8451
      ]
    },
    "id": 8452,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7885,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:23"
      },
      {
        "absolutePath": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "file": "@digix/solidity-collections/contracts/lib/DoublyLinkedList.sol",
        "id": 7886,
        "nodeType": "ImportDirective",
        "scope": 8452,
        "sourceUnit": 25117,
        "src": "26:72:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 7887,
        "nodeType": "ImportDirective",
        "scope": 8452,
        "sourceUnit": 25612,
        "src": "99:59:23",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": null,
        "fullyImplemented": true,
        "id": 8451,
        "linearizedBaseContracts": [
          8451
        ],
        "name": "DaoStructs",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 7890,
            "libraryName": {
              "contractScope": null,
              "id": 7888,
              "name": "DoublyLinkedList",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25116,
              "src": "191:16:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DoublyLinkedList_$25116",
                "typeString": "library DoublyLinkedList"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "185:50:23",
            "typeName": {
              "contractScope": null,
              "id": 7889,
              "name": "DoublyLinkedList.Bytes",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22605,
              "src": "212:22:23",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                "typeString": "struct DoublyLinkedList.Bytes"
              }
            }
          },
          {
            "id": 7893,
            "libraryName": {
              "contractScope": null,
              "id": 7891,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 25611,
              "src": "246:8:23",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$25611",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "240:27:23",
            "typeName": {
              "id": 7892,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "259:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "constant": true,
            "id": 7898,
            "name": "EMPTY_BYTES",
            "nodeType": "VariableDeclaration",
            "scope": 8451,
            "src": "272:43:23",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 7894,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "272:7:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "307830",
                  "id": 7896,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "311:3:23",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0x0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 7895,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "303:7:23",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 7897,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "303:12:23",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "DaoStructs.PrlAction",
            "id": 7905,
            "members": [
              {
                "constant": false,
                "id": 7900,
                "name": "at",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "407:10:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7899,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "407:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7902,
                "name": "doc",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "488:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7901,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "488:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7904,
                "name": "actionId",
                "nodeType": "VariableDeclaration",
                "scope": 7905,
                "src": "600:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7903,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "600:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PrlAction",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "322:301:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.Voting",
            "id": 7930,
            "members": [
              {
                "constant": false,
                "id": 7907,
                "name": "startTime",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "711:17:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7906,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "711:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7911,
                "name": "usedCommits",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "808:37:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                  "typeString": "mapping(bytes32 => bool)"
                },
                "typeName": {
                  "id": 7910,
                  "keyType": {
                    "id": 7908,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "817:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "808:25:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                    "typeString": "mapping(bytes32 => bool)"
                  },
                  "valueType": {
                    "id": 7909,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "828:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7915,
                "name": "commits",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1187:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                  "typeString": "mapping(address => bytes32)"
                },
                "typeName": {
                  "id": 7914,
                  "keyType": {
                    "id": 7912,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1196:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1187:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                    "typeString": "mapping(address => bytes32)"
                  },
                  "valueType": {
                    "id": 7913,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1207:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7919,
                "name": "yesVotes",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1529:37:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 7918,
                  "keyType": {
                    "id": 7916,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1538:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1529:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 7917,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1549:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7923,
                "name": "noVotes",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1873:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "typeName": {
                  "id": 7922,
                  "keyType": {
                    "id": 7920,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1882:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1873:28:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                    "typeString": "mapping(address => uint256)"
                  },
                  "valueType": {
                    "id": 7921,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1893:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7925,
                "name": "passed",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "1978:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7924,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1978:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7927,
                "name": "claimed",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "2169:12:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7926,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2169:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7929,
                "name": "funded",
                "nodeType": "VariableDeclaration",
                "scope": 7930,
                "src": "2395:11:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7928,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "2395:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Voting",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "629:1784:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.ProposalVersion",
            "id": 7945,
            "members": [
              {
                "constant": false,
                "id": 7932,
                "name": "docIpfsHash",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2509:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7931,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "2509:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7934,
                "name": "created",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2598:15:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7933,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2598:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7936,
                "name": "milestoneCount",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2696:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7935,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2696:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7938,
                "name": "finalReward",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2817:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7937,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2817:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7941,
                "name": "milestoneFundings",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "2954:27:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 7939,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2954:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 7940,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "2954:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7944,
                "name": "moreDocs",
                "nodeType": "VariableDeclaration",
                "scope": 7945,
                "src": "3275:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 7942,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3275:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7943,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "3275:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "ProposalVersion",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "2419:881:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.Proposal",
            "id": 7981,
            "members": [
              {
                "constant": false,
                "id": 7947,
                "name": "proposalId",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3411:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7946,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3411:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7949,
                "name": "currentState",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3549:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7948,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3549:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7951,
                "name": "timeCreated",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3639:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7950,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3639:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7953,
                "name": "proposalVersionDocs",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3756:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                  "typeString": "struct DoublyLinkedList.Bytes"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7952,
                  "name": "DoublyLinkedList.Bytes",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 22605,
                  "src": "3756:22:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes_$22605_storage_ptr",
                    "typeString": "struct DoublyLinkedList.Bytes"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7957,
                "name": "proposalVersions",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3881:53:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                  "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion)"
                },
                "typeName": {
                  "id": 7956,
                  "keyType": {
                    "id": 7954,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "3881:36:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                    "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 7955,
                    "name": "ProposalVersion",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7945,
                    "src": "3901:15:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                      "typeString": "struct DaoStructs.ProposalVersion"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7959,
                "name": "draftVoting",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "3997:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                  "typeString": "struct DaoStructs.Voting"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7958,
                  "name": "Voting",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7930,
                  "src": "3997:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7963,
                "name": "votingRounds",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4365:40:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                  "typeString": "mapping(uint256 => struct DaoStructs.Voting)"
                },
                "typeName": {
                  "id": 7962,
                  "keyType": {
                    "id": 7960,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4374:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "4365:27:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Voting_$7930_storage_$",
                    "typeString": "mapping(uint256 => struct DaoStructs.Voting)"
                  },
                  "valueType": {
                    "contractScope": null,
                    "id": 7961,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "4385:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7965,
                "name": "collateralStatus",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4709:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7964,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4709:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7967,
                "name": "collateralAmount",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4743:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7966,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4743:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7969,
                "name": "finalVersion",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "4955:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 7968,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4955:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7972,
                "name": "prlActions",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5092:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                  "typeString": "struct DaoStructs.PrlAction[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 7970,
                    "name": "PrlAction",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7905,
                    "src": "5092:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PrlAction_$7905_storage_ptr",
                      "typeString": "struct DaoStructs.PrlAction"
                    }
                  },
                  "id": 7971,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "5092:11:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PrlAction_$7905_storage_$dyn_storage_ptr",
                    "typeString": "struct DaoStructs.PrlAction[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7974,
                "name": "proposer",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5181:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7973,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5181:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7976,
                "name": "endorser",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5270:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7975,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "5270:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7978,
                "name": "isPausedOrStopped",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5369:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7977,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "5369:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7980,
                "name": "isDigix",
                "nodeType": "VariableDeclaration",
                "scope": 7981,
                "src": "5472:12:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 7979,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "5472:4:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "Proposal",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "3306:2185:23",
            "visibility": "public"
          },
          {
            "body": {
              "id": 8054,
              "nodeType": "Block",
              "src": "5645:364:23",
              "statements": [
                {
                  "assignments": [
                    7994
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7994,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "5655:10:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7993,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5655:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7997,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 7995,
                      "name": "_allUsers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7986,
                      "src": "5668:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                        "typeString": "address[] calldata"
                      }
                    },
                    "id": 7996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "5668:16:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5655:29:23"
                },
                {
                  "body": {
                    "id": 8052,
                    "nodeType": "Block",
                    "src": "5727:276:23",
                    "statements": [
                      {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8015,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8008,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7983,
                                "src": "5745:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8009,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "5745:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8013,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8010,
                                "name": "_allUsers",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7986,
                                "src": "5762:9:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 8012,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8011,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7999,
                                "src": "5772:1:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5762:12:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "5745:30:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 8014,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5778:1:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5745:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8036,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8029,
                                  "name": "_voting",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7983,
                                  "src": "5871:7:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                    "typeString": "struct DaoStructs.Voting storage pointer"
                                  }
                                },
                                "id": 8030,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "noVotes",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7923,
                                "src": "5871:15:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                  "typeString": "mapping(address => uint256)"
                                }
                              },
                              "id": 8034,
                              "indexExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 8031,
                                  "name": "_allUsers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7986,
                                  "src": "5887:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 8033,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 8032,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7999,
                                  "src": "5897:1:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "5887:12:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5871:29:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8035,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5903:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "5871:33:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": null,
                          "id": 8050,
                          "nodeType": "IfStatement",
                          "src": "5867:126:23",
                          "trueBody": {
                            "id": 8049,
                            "nodeType": "Block",
                            "src": "5906:87:23",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8047,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 8037,
                                    "name": "_against",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7991,
                                    "src": "5924:8:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 8040,
                                            "name": "_voting",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7983,
                                            "src": "5948:7:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                              "typeString": "struct DaoStructs.Voting storage pointer"
                                            }
                                          },
                                          "id": 8041,
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "noVotes",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 7923,
                                          "src": "5948:15:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                            "typeString": "mapping(address => uint256)"
                                          }
                                        },
                                        "id": 8045,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "baseExpression": {
                                            "argumentTypes": null,
                                            "id": 8042,
                                            "name": "_allUsers",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7986,
                                            "src": "5964:9:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                              "typeString": "address[] calldata"
                                            }
                                          },
                                          "id": 8044,
                                          "indexExpression": {
                                            "argumentTypes": null,
                                            "id": 8043,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7999,
                                            "src": "5974:1:23",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "5964:12:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5948:29:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 8038,
                                        "name": "_against",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7991,
                                        "src": "5935:8:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 8039,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 25610,
                                      "src": "5935:12:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 8046,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5935:43:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "5924:54:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 8048,
                                "nodeType": "ExpressionStatement",
                                "src": "5924:54:23"
                              }
                            ]
                          }
                        },
                        "id": 8051,
                        "nodeType": "IfStatement",
                        "src": "5741:252:23",
                        "trueBody": {
                          "id": 8028,
                          "nodeType": "Block",
                          "src": "5781:80:23",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 8026,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 8016,
                                  "name": "_for",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7989,
                                  "src": "5799:4:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 8019,
                                          "name": "_voting",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7983,
                                          "src": "5815:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                            "typeString": "struct DaoStructs.Voting storage pointer"
                                          }
                                        },
                                        "id": 8020,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "yesVotes",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7919,
                                        "src": "5815:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                          "typeString": "mapping(address => uint256)"
                                        }
                                      },
                                      "id": 8024,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8021,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7986,
                                          "src": "5832:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8023,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8022,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7999,
                                          "src": "5842:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "5832:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "5815:30:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8017,
                                      "name": "_for",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7989,
                                      "src": "5806:4:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8018,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "add",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 25610,
                                    "src": "5806:8:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 8025,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5806:40:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5799:47:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 8027,
                              "nodeType": "ExpressionStatement",
                              "src": "5799:47:23"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8004,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8002,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7999,
                      "src": "5714:1:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8003,
                      "name": "_n",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7994,
                      "src": "5718:2:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5714:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8053,
                  "initializationExpression": {
                    "assignments": [
                      7999
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7999,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 8055,
                        "src": "5699:9:23",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7998,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5699:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 8001,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5711:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5699:13:23"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8006,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5722:3:23",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8005,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7999,
                        "src": "5722:1:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8007,
                    "nodeType": "ExpressionStatement",
                    "src": "5722:3:23"
                  },
                  "nodeType": "ForStatement",
                  "src": "5694:309:23"
                }
              ]
            },
            "documentation": null,
            "id": 8055,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "countVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7987,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7983,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5517:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7982,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "5517:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7986,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5541:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7984,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5541:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7985,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "5541:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5516:45:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 7992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7989,
                  "name": "_for",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5609:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5609:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7991,
                  "name": "_against",
                  "nodeType": "VariableDeclaration",
                  "scope": 8055,
                  "src": "5623:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7990,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5623:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5608:32:23"
            },
            "scope": 8451,
            "src": "5497:512:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8162,
              "nodeType": "Block",
              "src": "6251:604:23",
              "statements": [
                {
                  "assignments": [
                    8071
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8071,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 8163,
                      "src": "6261:10:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8070,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6261:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8074,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 8072,
                      "name": "_allUsers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8060,
                      "src": "6274:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                        "typeString": "address[] calldata"
                      }
                    },
                    "id": 8073,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "6274:16:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6261:29:23"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8076,
                      "name": "i",
                      "nodeType": "VariableDeclaration",
                      "scope": 8163,
                      "src": "6300:9:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8075,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6300:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8077,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6300:9:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8078,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8068,
                      "src": "6319:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8079,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6329:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6319:11:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8081,
                  "nodeType": "ExpressionStatement",
                  "src": "6319:11:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8088,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8082,
                      "name": "_voters",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8066,
                      "src": "6340:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 8086,
                          "name": "_n",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8071,
                          "src": "6364:2:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 8085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "6350:13:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$",
                          "typeString": "function (uint256) pure returns (address[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 8083,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "6354:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 8084,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "6354:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        }
                      },
                      "id": 8087,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6350:17:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory",
                        "typeString": "address[] memory"
                      }
                    },
                    "src": "6340:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "id": 8089,
                  "nodeType": "ExpressionStatement",
                  "src": "6340:27:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 8092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8090,
                      "name": "_vote",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8062,
                      "src": "6381:5:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 8091,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6390:4:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "6381:13:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8160,
                    "nodeType": "Block",
                    "src": "6626:223:23",
                    "statements": [
                      {
                        "body": {
                          "id": 8158,
                          "nodeType": "Block",
                          "src": "6665:174:23",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8144,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8137,
                                      "name": "_voting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8057,
                                      "src": "6687:7:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                        "typeString": "struct DaoStructs.Voting storage pointer"
                                      }
                                    },
                                    "id": 8138,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "noVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7923,
                                    "src": "6687:15:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 8142,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 8139,
                                      "name": "_allUsers",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8060,
                                      "src": "6703:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 8141,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 8140,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8076,
                                      "src": "6713:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6703:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6687:29:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 8143,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6719:1:23",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "6687:33:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 8157,
                              "nodeType": "IfStatement",
                              "src": "6683:142:23",
                              "trueBody": {
                                "id": 8156,
                                "nodeType": "Block",
                                "src": "6722:103:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8151,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8145,
                                          "name": "_voters",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8066,
                                          "src": "6744:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 8147,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8146,
                                          "name": "_length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8068,
                                          "src": "6752:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "6744:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8148,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8060,
                                          "src": "6763:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8150,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8149,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8076,
                                          "src": "6773:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6763:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "src": "6744:31:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 8152,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6744:31:23"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8154,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "6797:9:23",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 8153,
                                        "name": "_length",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8068,
                                        "src": "6797:7:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8155,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6797:9:23"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8131,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8076,
                            "src": "6652:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 8132,
                            "name": "_n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8071,
                            "src": "6656:2:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6652:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8159,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8129,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 8127,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6645:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8128,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6649:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "6645:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8130,
                          "nodeType": "ExpressionStatement",
                          "src": "6645:5:23"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8135,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "6660:3:23",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 8134,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6660:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8136,
                          "nodeType": "ExpressionStatement",
                          "src": "6660:3:23"
                        },
                        "nodeType": "ForStatement",
                        "src": "6640:199:23"
                      }
                    ]
                  },
                  "id": 8161,
                  "nodeType": "IfStatement",
                  "src": "6377:472:23",
                  "trueBody": {
                    "id": 8126,
                    "nodeType": "Block",
                    "src": "6396:224:23",
                    "statements": [
                      {
                        "body": {
                          "id": 8124,
                          "nodeType": "Block",
                          "src": "6435:175:23",
                          "statements": [
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8110,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8103,
                                      "name": "_voting",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8057,
                                      "src": "6457:7:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                        "typeString": "struct DaoStructs.Voting storage pointer"
                                      }
                                    },
                                    "id": 8104,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "yesVotes",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7919,
                                    "src": "6457:16:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                      "typeString": "mapping(address => uint256)"
                                    }
                                  },
                                  "id": 8108,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 8105,
                                      "name": "_allUsers",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8060,
                                      "src": "6474:9:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 8107,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 8106,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8076,
                                      "src": "6484:1:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6474:12:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "6457:30:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 8109,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6490:1:23",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "6457:34:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 8123,
                              "nodeType": "IfStatement",
                              "src": "6453:143:23",
                              "trueBody": {
                                "id": 8122,
                                "nodeType": "Block",
                                "src": "6493:103:23",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8117,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8111,
                                          "name": "_voters",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8066,
                                          "src": "6515:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                          }
                                        },
                                        "id": 8113,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8112,
                                          "name": "_length",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8068,
                                          "src": "6523:7:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "6515:16:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 8114,
                                          "name": "_allUsers",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8060,
                                          "src": "6534:9:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 8116,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 8115,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 8076,
                                          "src": "6544:1:23",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "6534:12:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "src": "6515:31:23",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 8118,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6515:31:23"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 8120,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "++",
                                      "prefix": false,
                                      "src": "6568:9:23",
                                      "subExpression": {
                                        "argumentTypes": null,
                                        "id": 8119,
                                        "name": "_length",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 8068,
                                        "src": "6568:7:23",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "id": 8121,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6568:9:23"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8099,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 8097,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8076,
                            "src": "6422:1:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 8098,
                            "name": "_n",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8071,
                            "src": "6426:2:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6422:6:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8125,
                        "initializationExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8095,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "argumentTypes": null,
                              "id": 8093,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6415:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 8094,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6419:1:23",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "6415:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8096,
                          "nodeType": "ExpressionStatement",
                          "src": "6415:5:23"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 8101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "6430:3:23",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 8100,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8076,
                              "src": "6430:1:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 8102,
                          "nodeType": "ExpressionStatement",
                          "src": "6430:3:23"
                        },
                        "nodeType": "ForStatement",
                        "src": "6410:200:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8163,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "listVotes",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8063,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8057,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6100:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8056,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "6100:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8060,
                  "name": "_allUsers",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6124:19:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8058,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6124:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 8059,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6124:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8062,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6145:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8061,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6145:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6099:57:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8069,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8066,
                  "name": "_voters",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6204:24:23",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8064,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6204:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 8065,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "6204:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8068,
                  "name": "_length",
                  "nodeType": "VariableDeclaration",
                  "scope": 8163,
                  "src": "6230:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8067,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6230:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6203:43:23"
            },
            "scope": 8451,
            "src": "6081:774:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8205,
              "nodeType": "Block",
              "src": "6997:286:23",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8179,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8174,
                          "name": "_voting",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8165,
                          "src": "7011:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                            "typeString": "struct DaoStructs.Voting storage pointer"
                          }
                        },
                        "id": 8175,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "yesVotes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7919,
                        "src": "7011:16:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 8177,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 8176,
                        "name": "_voter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8167,
                        "src": "7028:6:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "7011:24:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8178,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7038:1:23",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7011:28:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8203,
                    "nodeType": "Block",
                    "src": "7132:145:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8197,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8192,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8172,
                            "src": "7146:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8193,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8165,
                                "src": "7156:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8194,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "7156:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8196,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8195,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8167,
                              "src": "7172:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7156:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7146:33:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8198,
                        "nodeType": "ExpressionStatement",
                        "src": "7146:33:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8199,
                            "name": "_vote",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8170,
                            "src": "7253:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "66616c7365",
                            "id": 8200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7261:5:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "false"
                          },
                          "src": "7253:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8202,
                        "nodeType": "ExpressionStatement",
                        "src": "7253:13:23"
                      }
                    ]
                  },
                  "id": 8204,
                  "nodeType": "IfStatement",
                  "src": "7007:270:23",
                  "trueBody": {
                    "id": 8191,
                    "nodeType": "Block",
                    "src": "7041:85:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8180,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8172,
                            "src": "7055:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8181,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8165,
                                "src": "7065:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8182,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "7065:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8184,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8183,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8167,
                              "src": "7082:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "7065:24:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7055:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8186,
                        "nodeType": "ExpressionStatement",
                        "src": "7055:34:23"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8187,
                            "name": "_vote",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8170,
                            "src": "7103:5:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 8188,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7111:4:23",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "7103:12:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8190,
                        "nodeType": "ExpressionStatement",
                        "src": "7103:12:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8206,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8168,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8165,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6879:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8164,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "6879:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8167,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6903:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8166,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6903:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6878:40:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8170,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6964:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8169,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6964:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8172,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 8206,
                  "src": "6976:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8171,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6976:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6963:29:23"
            },
            "scope": 8451,
            "src": "6861:422:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8237,
              "nodeType": "Block",
              "src": "7435:150:23",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 8217,
                    "name": "_vote",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8212,
                    "src": "7449:5:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8235,
                    "nodeType": "Block",
                    "src": "7521:58:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8227,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8208,
                                "src": "7535:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8230,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "noVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7923,
                              "src": "7535:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8231,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8229,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8210,
                              "src": "7551:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7535:23:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 8232,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8214,
                            "src": "7561:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7535:33:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8234,
                        "nodeType": "ExpressionStatement",
                        "src": "7535:33:23"
                      }
                    ]
                  },
                  "id": 8236,
                  "nodeType": "IfStatement",
                  "src": "7445:134:23",
                  "trueBody": {
                    "id": 8226,
                    "nodeType": "Block",
                    "src": "7456:59:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8224,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 8218,
                                "name": "_voting",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8208,
                                "src": "7470:7:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                                  "typeString": "struct DaoStructs.Voting storage pointer"
                                }
                              },
                              "id": 8221,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "yesVotes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7919,
                              "src": "7470:16:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 8222,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8220,
                              "name": "_voter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8210,
                              "src": "7487:6:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7470:24:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 8223,
                            "name": "_weight",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8214,
                            "src": "7497:7:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7470:34:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8225,
                        "nodeType": "ExpressionStatement",
                        "src": "7470:34:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8238,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "revealVote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8208,
                  "name": "_voting",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7318:22:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8207,
                    "name": "Voting",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7930,
                    "src": "7318:6:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                      "typeString": "struct DaoStructs.Voting"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8210,
                  "name": "_voter",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7350:14:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7350:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8212,
                  "name": "_vote",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7374:10:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8211,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7374:4:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8214,
                  "name": "_weight",
                  "nodeType": "VariableDeclaration",
                  "scope": 8238,
                  "src": "7394:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8213,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7394:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7308:107:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8216,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7435:0:23"
            },
            "scope": 8451,
            "src": "7289:296:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8272,
              "nodeType": "Block",
              "src": "7837:183:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8255,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8252,
                      "name": "_doc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8243,
                      "src": "7847:4:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8253,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7854:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8254,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "docIpfsHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7932,
                      "src": "7854:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "7847:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8256,
                  "nodeType": "ExpressionStatement",
                  "src": "7847:27:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8260,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8257,
                      "name": "_created",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8245,
                      "src": "7884:8:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8258,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7895:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8259,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "created",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7934,
                      "src": "7895:16:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7884:27:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8261,
                  "nodeType": "ExpressionStatement",
                  "src": "7884:27:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8262,
                      "name": "_milestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8248,
                      "src": "7921:18:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8263,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7942:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8264,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "7942:26:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "src": "7921:47:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "id": 8266,
                  "nodeType": "ExpressionStatement",
                  "src": "7921:47:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8267,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8250,
                      "src": "7978:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8268,
                        "name": "_version",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8240,
                        "src": "7993:8:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                          "typeString": "struct DaoStructs.ProposalVersion storage pointer"
                        }
                      },
                      "id": 8269,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "7993:20:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7978:35:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8271,
                  "nodeType": "ExpressionStatement",
                  "src": "7978:35:23"
                }
              ]
            },
            "documentation": null,
            "id": 8273,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8241,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8240,
                  "name": "_version",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7612:32:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                    "typeString": "struct DaoStructs.ProposalVersion"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8239,
                    "name": "ProposalVersion",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7945,
                    "src": "7612:15:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage_ptr",
                      "typeString": "struct DaoStructs.ProposalVersion"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7611:34:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8243,
                  "name": "_doc",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7704:12:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8242,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7704:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8245,
                  "name": "_created",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7730:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8244,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7730:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8248,
                  "name": "_milestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7760:28:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8246,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "7760:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8247,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "7760:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8250,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 8273,
                  "src": "7802:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8249,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7802:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7690:142:23"
            },
            "scope": 8451,
            "src": "7591:429:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8332,
              "nodeType": "Block",
              "src": "8335:562:23",
              "statements": [
                {
                  "assignments": [
                    8283
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8283,
                      "name": "_finalVersion",
                      "nodeType": "VariableDeclaration",
                      "scope": 8333,
                      "src": "8345:21:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 8282,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "8345:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8286,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 8284,
                      "name": "_proposal",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8275,
                      "src": "8369:9:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                        "typeString": "struct DaoStructs.Proposal storage pointer"
                      }
                    },
                    "id": 8285,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "finalVersion",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 7969,
                    "src": "8369:22:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8345:46:23"
                },
                {
                  "assignments": [
                    8288
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8288,
                      "name": "_milestoneCount",
                      "nodeType": "VariableDeclaration",
                      "scope": 8333,
                      "src": "8401:23:23",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8287,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8401:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 8295,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8289,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8275,
                            "src": "8427:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8290,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "8427:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8292,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8291,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8283,
                          "src": "8454:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "8427:41:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8293,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "8427:59:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 8294,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "8427:66:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8401:92:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8299,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8297,
                          "name": "_milestoneIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8277,
                          "src": "8511:15:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8298,
                          "name": "_milestoneCount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8288,
                          "src": "8530:15:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8511:34:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8296,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8503:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8503:43:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8301,
                  "nodeType": "ExpressionStatement",
                  "src": "8503:43:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 8305,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 8303,
                          "name": "_finalVersion",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8283,
                          "src": "8564:13:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 8304,
                          "name": "EMPTY_BYTES",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7898,
                          "src": "8581:11:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "8564:28:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8302,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "8556:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8556:37:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8307,
                  "nodeType": "ExpressionStatement",
                  "src": "8556:37:23"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8310,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8308,
                      "name": "_milestoneIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8277,
                      "src": "8649:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 8309,
                      "name": "_milestoneCount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8288,
                      "src": "8667:15:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8649:33:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8330,
                    "nodeType": "Block",
                    "src": "8802:89:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8328,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8322,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "8816:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 8323,
                                  "name": "_proposal",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8275,
                                  "src": "8827:9:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                    "typeString": "struct DaoStructs.Proposal storage pointer"
                                  }
                                },
                                "id": 8324,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "proposalVersions",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7957,
                                "src": "8827:26:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                                  "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                                }
                              },
                              "id": 8326,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8325,
                                "name": "_finalVersion",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8283,
                                "src": "8854:13:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8827:41:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                                "typeString": "struct DaoStructs.ProposalVersion storage ref"
                              }
                            },
                            "id": 8327,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "finalReward",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7938,
                            "src": "8827:53:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8816:64:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8329,
                        "nodeType": "ExpressionStatement",
                        "src": "8816:64:23"
                      }
                    ]
                  },
                  "id": 8331,
                  "nodeType": "IfStatement",
                  "src": "8645:246:23",
                  "trueBody": {
                    "id": 8321,
                    "nodeType": "Block",
                    "src": "8684:112:23",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8319,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 8311,
                            "name": "_funding",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8280,
                            "src": "8698:8:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 8312,
                                    "name": "_proposal",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8275,
                                    "src": "8709:9:23",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                                      "typeString": "struct DaoStructs.Proposal storage pointer"
                                    }
                                  },
                                  "id": 8313,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "proposalVersions",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7957,
                                  "src": "8709:26:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                                    "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                                  }
                                },
                                "id": 8315,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 8314,
                                  "name": "_finalVersion",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8283,
                                  "src": "8736:13:23",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8709:41:23",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                                  "typeString": "struct DaoStructs.ProposalVersion storage ref"
                                }
                              },
                              "id": 8316,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "milestoneFundings",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7941,
                              "src": "8709:59:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                "typeString": "uint256[] storage ref"
                              }
                            },
                            "id": 8318,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8317,
                              "name": "_milestoneIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8277,
                              "src": "8769:15:23",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "8709:76:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8698:87:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8320,
                        "nodeType": "ExpressionStatement",
                        "src": "8698:87:23"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 8333,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readProposalMilestone",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8275,
                  "name": "_proposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8215:26:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                    "typeString": "struct DaoStructs.Proposal"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8274,
                    "name": "Proposal",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7981,
                    "src": "8215:8:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                      "typeString": "struct DaoStructs.Proposal"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8277,
                  "name": "_milestoneIndex",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8243:23:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8276,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8243:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8214:53:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8280,
                  "name": "_funding",
                  "nodeType": "VariableDeclaration",
                  "scope": 8333,
                  "src": "8313:16:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8279,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8313:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8312:18:23"
            },
            "scope": 8451,
            "src": "8184:713:23",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 8399,
              "nodeType": "Block",
              "src": "9088:438:23",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 8350,
                        "name": "_newDoc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8337,
                        "src": "9135:7:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 8345,
                          "name": "_proposal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8335,
                          "src": "9098:9:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                            "typeString": "struct DaoStructs.Proposal storage pointer"
                          }
                        },
                        "id": 8348,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "proposalVersionDocs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7953,
                        "src": "9098:29:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bytes_$22605_storage",
                          "typeString": "struct DoublyLinkedList.Bytes storage ref"
                        }
                      },
                      "id": 8349,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "append",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24585,
                      "src": "9098:36:23",
                      "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": 8351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9098:45:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8352,
                  "nodeType": "ExpressionStatement",
                  "src": "9098:45:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8360,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8353,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9153:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8356,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9153:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8357,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8355,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9180:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9153:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8358,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "docIpfsHash",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7932,
                      "src": "9153:47:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8359,
                      "name": "_newDoc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8337,
                      "src": "9203:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "9153:57:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8361,
                  "nodeType": "ExpressionStatement",
                  "src": "9153:57:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8369,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8362,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9220:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8365,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9220:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8366,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8364,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9247:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9220:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8367,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "created",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7934,
                      "src": "9220:43:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8368,
                      "name": "now",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 26184,
                      "src": "9266:3:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9220:49:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8370,
                  "nodeType": "ExpressionStatement",
                  "src": "9220:49:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8371,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9279:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8374,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9279:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8375,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8373,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9306:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9279:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8376,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneCount",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7936,
                      "src": "9279:50:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8377,
                        "name": "_newMilestoneFundings",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8340,
                        "src": "9332:21:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 8378,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "9332:28:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9279:81:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8380,
                  "nodeType": "ExpressionStatement",
                  "src": "9279:81:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8381,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9370:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8384,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9370:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8385,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8383,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9397:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9370:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8386,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "milestoneFundings",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7941,
                      "src": "9370:53:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8387,
                      "name": "_newMilestoneFundings",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8340,
                      "src": "9426:21:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[] memory"
                      }
                    },
                    "src": "9370:77:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 8389,
                  "nodeType": "ExpressionStatement",
                  "src": "9370:77:23"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8397,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8390,
                            "name": "_proposal",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8335,
                            "src": "9457:9:23",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                              "typeString": "struct DaoStructs.Proposal storage pointer"
                            }
                          },
                          "id": 8393,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "proposalVersions",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7957,
                          "src": "9457:26:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_ProposalVersion_$7945_storage_$",
                            "typeString": "mapping(bytes32 => struct DaoStructs.ProposalVersion storage ref)"
                          }
                        },
                        "id": 8394,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 8392,
                          "name": "_newDoc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8337,
                          "src": "9484:7:23",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "9457:35:23",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ProposalVersion_$7945_storage",
                          "typeString": "struct DaoStructs.ProposalVersion storage ref"
                        }
                      },
                      "id": 8395,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "finalReward",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7938,
                      "src": "9457:47:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 8396,
                      "name": "_finalReward",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8342,
                      "src": "9507:12:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9457:62:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8398,
                  "nodeType": "ExpressionStatement",
                  "src": "9457:62:23"
                }
              ]
            },
            "documentation": null,
            "id": 8400,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "addProposalVersion",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8343,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8335,
                  "name": "_proposal",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "8940:26:23",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                    "typeString": "struct DaoStructs.Proposal"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 8334,
                    "name": "Proposal",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7981,
                    "src": "8940:8:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Proposal_$7981_storage_ptr",
                      "typeString": "struct DaoStructs.Proposal"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8337,
                  "name": "_newDoc",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "8976:15:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 8336,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8976:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8340,
                  "name": "_newMilestoneFundings",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "9001:31:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8338,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "9001:7:23",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8339,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "9001:9:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8342,
                  "name": "_finalReward",
                  "nodeType": "VariableDeclaration",
                  "scope": 8400,
                  "src": "9042:20:23",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8341,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9042:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8930:138:23"
            },
            "payable": false,
            "returnParameters": {
              "id": 8344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9088:0:23"
            },
            "scope": 8451,
            "src": "8903:623:23",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.SpecialProposal",
            "id": 8418,
            "members": [
              {
                "constant": false,
                "id": 8402,
                "name": "proposalId",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9656:18:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 8401,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "9656:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8404,
                "name": "timeCreated",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9744:19:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8403,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "9744:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8406,
                "name": "voting",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9824:13:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                  "typeString": "struct DaoStructs.Voting"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 8405,
                  "name": "Voting",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7930,
                  "src": "9824:6:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Voting_$7930_storage_ptr",
                    "typeString": "struct DaoStructs.Voting"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8409,
                "name": "uintConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "9919:21:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8407,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9919:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8408,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "9919:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8412,
                "name": "addressConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10022:24:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                  "typeString": "address[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10022:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 8411,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "10022:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                    "typeString": "address[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8415,
                "name": "bytesConfigs",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10128:22:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 8413,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10128:7:23",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 8414,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "10128:9:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8417,
                "name": "proposer",
                "nodeType": "VariableDeclaration",
                "scope": 8418,
                "src": "10347:16:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 8416,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "10347:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "SpecialProposal",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "9532:838:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.DaoQuarterInfo",
            "id": 8441,
            "members": [
              {
                "constant": false,
                "id": 8420,
                "name": "minimalParticipationPoint",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10665:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8419,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10665:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8422,
                "name": "quarterPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10757:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8421,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10757:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8424,
                "name": "reputationPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "10852:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8423,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "10852:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8426,
                "name": "totalEffectiveDGDPreviousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11366:40:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8425,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11366:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8428,
                "name": "moderatorMinimalParticipationPoint",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11539:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8427,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11539:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8430,
                "name": "moderatorQuarterPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11650:42:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8429,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11650:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8432,
                "name": "moderatorReputationPointScalingFactor",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11764:45:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8431,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11764:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8434,
                "name": "totalEffectiveModeratorDGDLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "11892:45:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8433,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "11892:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8436,
                "name": "dgxDistributionDay",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12054:26:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8435,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12054:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8438,
                "name": "dgxRewardsPoolLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12424:33:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8437,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12424:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8440,
                "name": "sumRewardsFromBeginning",
                "nodeType": "VariableDeclaration",
                "scope": 8441,
                "src": "12548:31:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8439,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "12548:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "DaoQuarterInfo",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "10535:2051:23",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoStructs.IntermediateResults",
            "id": 8450,
            "members": [
              {
                "constant": false,
                "id": 8443,
                "name": "currentForCount",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13021:23:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8442,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13021:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8445,
                "name": "currentAgainstCount",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13138:27:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8444,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13138:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8447,
                "name": "currentSumOfEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13252:36:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 8446,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "13252:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 8449,
                "name": "countedUntil",
                "nodeType": "VariableDeclaration",
                "scope": 8450,
                "src": "13368:20:23",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 8448,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "13368:7:23",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IntermediateResults",
            "nodeType": "StructDefinition",
            "scope": 8451,
            "src": "12905:490:23",
            "visibility": "public"
          }
        ],
        "scope": 8452,
        "src": "160:13237:23"
      }
    ],
    "src": "0:13398:23"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {},
      "links": {
        "DoublyLinkedList": "0x8045c179449f1501786a1bc68224fc49f8463d08"
      },
      "address": "0xefd92aeabd90747620117fa2188697aef3043f6c",
      "transactionHash": "0x31669601b6d2e875991db317a61080eaefa08b04936378a6e2815fe3af02b81a"
    }
  },
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-16T08:53:12.882Z"
}