{
  "contractName": "DaoRewardsManagerCommon",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentTimeInQuarter",
      "outputs": [
        {
          "name": "_currentT",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isMainPhase",
      "outputs": [
        {
          "name": "_isMainPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isLockingPhase",
      "outputs": [
        {
          "name": "_isLockingPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentQuarterNumber",
      "outputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_configKey",
          "type": "bytes32"
        }
      ],
      "name": "getUintConfig",
      "outputs": [
        {
          "name": "_configValue",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isDaoNotReplaced",
      "outputs": [
        {
          "name": "_isNotReplaced",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f9060001916905534801561113357600080fd5b5061095e806111436000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100a95780633943380c146101005780633f83acff14610133578063560a25ea146101a457806368533060146101cf5780637d6fed80146101fe5780637f6a26b61461022d578063b1e2b9dd14610258578063d70d93581461029d578063db4ecbc1146102cc575b600080fd5b3480156100b557600080fd5b506100be610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010c57600080fd5b50610115610348565b60405180826000191660001916815260200191505060405180910390f35b34801561013f57600080fd5b50610162600480360381019080803560001916906020019092919050505061034e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b057600080fd5b506101b961042a565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e461043a565b604051808215151515815260200191505060405180910390f35b34801561020a57600080fd5b50610213610466565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610481565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102876004803603810190808035600019169060200190929190505050610491565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610553565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610601565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b505050506040513d602081101561041257600080fd5b81019080805190602001909291905050509050919050565b600061043542610627565b905090565b6000610444610553565b80156104615750610456603854610491565b61045e61042a565b10155b905090565b6000610473603854610491565b61047b61042a565b10905090565b600061048c42610710565b905090565b600061049b610813565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b505050506040513d602081101561053b57600080fd5b81019080805190602001909291905050509050919050565b600061055d610825565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610631610837565b151561063c57600080fd5b610647603954610491565b6106ff610652610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050846108e790919063ffffffff16565b81151561070857fe5b069050919050565b600061071a610837565b151561072557600080fd5b61080c60016107fe610738603954610491565b6107f0610743610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b8101908080519060200190929190505050876108e790919063ffffffff16565b61090090919063ffffffff16565b61091690919063ffffffff16565b9050919050565b6000610820602b5461034e565b905090565b600061083260275461034e565b905090565b600080610842610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d60208110156108cf57600080fd5b81019080805190602001909291905050501415905090565b60008282111515156108f557fe5b818303905092915050565b6000818381151561090d57fe5b04905092915050565b6000818301905082811015151561092957fe5b809050929150505600a165627a7a72305820e66684885d5a752ca3b2bc12775592097ea9d3024c98c1aaa0cfdddaeb1af8690029",
  "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100a95780633943380c146101005780633f83acff14610133578063560a25ea146101a457806368533060146101cf5780637d6fed80146101fe5780637f6a26b61461022d578063b1e2b9dd14610258578063d70d93581461029d578063db4ecbc1146102cc575b600080fd5b3480156100b557600080fd5b506100be610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010c57600080fd5b50610115610348565b60405180826000191660001916815260200191505060405180910390f35b34801561013f57600080fd5b50610162600480360381019080803560001916906020019092919050505061034e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b057600080fd5b506101b961042a565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e461043a565b604051808215151515815260200191505060405180910390f35b34801561020a57600080fd5b50610213610466565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610481565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102876004803603810190808035600019169060200190929190505050610491565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610553565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610601565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b505050506040513d602081101561041257600080fd5b81019080805190602001909291905050509050919050565b600061043542610627565b905090565b6000610444610553565b80156104615750610456603854610491565b61045e61042a565b10155b905090565b6000610473603854610491565b61047b61042a565b10905090565b600061048c42610710565b905090565b600061049b610813565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b505050506040513d602081101561053b57600080fd5b81019080805190602001909291905050509050919050565b600061055d610825565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610631610837565b151561063c57600080fd5b610647603954610491565b6106ff610652610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050846108e790919063ffffffff16565b81151561070857fe5b069050919050565b600061071a610837565b151561072557600080fd5b61080c60016107fe610738603954610491565b6107f0610743610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b8101908080519060200190929190505050876108e790919063ffffffff16565b61090090919063ffffffff16565b61091690919063ffffffff16565b9050919050565b6000610820602b5461034e565b905090565b600061083260275461034e565b905090565b600080610842610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d60208110156108cf57600080fd5b81019080805190602001909291905050501415905090565b60008282111515156108f557fe5b818303905092915050565b6000818381151561090d57fe5b04905092915050565b6000818301905082811015151561092957fe5b809050929150505600a165627a7a72305820e66684885d5a752ca3b2bc12775592097ea9d3024c98c1aaa0cfdddaeb1af8690029",
  "sourceMap": "91:2578:4:-;;;177:3:3;169:12;;147:34;;;;;;;219:3;187:36;;;;;;;;;;;;;;;;;;;;230:65;;;;;;;;301:53;;;;;;;;360:61;;;;;;;;427:57;;;;;;;;490:55;;;;;;;;551:59;;;;;;;;643:1;617:27;;677:1;650:28;;713:1;684:30;;758:1;721:38;;800:1;765:36;;843:1;807:37;;851:52;;;;;;;;909:66;;;;;;;;981:80;;;;;;;;1097:28;;;;;;;;1131:62;;;;;;;;1199:56;;;;;;;;1261:42;;;;;;;;1309:56;;;;;;;;1371:65;;;;;;;;1442:46;;;;;;;;1494:60;;;;;;;;1560:66;;;;;;;;1632:40;;;;;;;;1678:60;;;;;;;;1744:54;;;;;;;;1804:52;;;;;;;;1888:46;;;;;;;;1940:54;;;;;;;;2000:60;;;;;;;;2066:66;;;;;;;;2164:44;;;;;;;;2214:60;;;;;;;;2280;;;;;;;;2346:62;;;;;;;;2414:58;;;;;;;;2478:60;;;;;;;;2544:58;;;;;;;;2608:56;;;;;;;;2670:60;;;;;;;;2736:70;;;;;;;;2812:78;;;;;;;;2897:36;;;;;;;;2939;;;;;;;;2981:40;;;;;;;;3047:1;3028:20;;;;;;;;;;;;;;;;;;;;3077:1;3054:24;;;;;;;;;;;;;;;;;;;;3103:1;3084:20;;;;;;;;;;;;;;;;;;;;3135:1;3110:26;;;;;;;;;;;;;;;;;;;;3170:7;3143:34;;3184:57;;;;;;;;3247:62;;;;;;;;3315:76;;;;;;;;3398:64;;;;;;;;3468:52;;;;;;;;3526:58;;;;;;;;3590:56;;;;;;;;3652:67;;;;;;;;3725:65;;;;;;;;3797:84;;;;;;;;3887:88;;;;;;;;3981:87;;;;;;;;4074:91;;;;;;;;4171:84;;;;;;;;4261:88;;;;;;;;4355:87;;;;;;;;4448:91;;;;;;;;4545:87;;;;;;;;4638:91;;;;;;;;4736:62;;;;;;;;4804:66;;;;;;;;4876:64;;;;;;;;4946:68;;;;;;;;5021:51;;;;;;;;5078:76;;;;;;;;5160:75;;;;;;;;5242:65;;;;;;;;5313:79;;;;;;;;5398:89;;;;;;;;5494:68;;;;;;;;5568:56;;;;;;;;5630:72;;;;;;;;5740:91;;;;;;;;5838:72;;;;;;;;5916:76;;;;;;;;5999:78;;;;;;;;6083:76;;;;;;;;6166:73;;;;;;;;6245:77;;;;;;;;6329;;;;;;;;6412:81;;;;;;;;6500:79;;;;;;;;6585:75;;;;;;;;6667:74;;;;;;;;6747;;;;;;;;6828:83;;;;;;;;6917:86;;;;;;;;7009;;;;;;;;7102:67;;;;;;;;7175;;;;;;;;7249:63;;;;;;;;7319:77;;;;;;;;7403:66;;;;;;;;7476:71;;;;;;;;7554:72;;;;;;;;7632:78;;;;;;;;7716:82;;;;;;;;7805:62;;;;;;;;7873:68;;;;;;;;91:2578:4;8:9:-1;5:2;;;30:1;27;20:12;5:2;91:2578:4;;;;;;;",
  "deployedSourceMap": "91:2578:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4809:147:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4809:147:2;;;;;;;;;;;;;;;;;;;;;;;1759:239;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1759:239:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1283:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1283:201:2;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3130:159:2;;;;;;;;;;;;;;;;;;;;;;;7327:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7327:189:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;834:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;834:173:2;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23;;;;;;;;;;;;;:::o;264:18::-;;;;:::o;2380:179::-;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;4809:147:2:-;4886:17;4931:18;4945:3;4931:13;:18::i;:::-;4919:30;;4809:147;:::o;1759:239::-;1827:17;1887:18;:16;:18::i;:::-;:104;;;;;1947:44;1961:29;;1947:13;:44::i;:::-;1921:22;:20;:22::i;:::-;:70;;1887:104;1860:131;;1759:239;:::o;1283:201::-;1354:20;1433:44;1447:29;;1433:13;:44::i;:::-;1408:22;:20;:22::i;:::-;:69;1390:87;;1283:201;:::o;3130:159::-;3206:22;3261:21;3278:3;3261:16;:21::i;:::-;3244:38;;3130:159;:::o;7327:189::-;7415:20;7466:19;:17;:19::i;:::-;:31;;;7498:10;7466:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7466:43:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7466:43:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7466:43:2;;;;;;;;;;;;;;;;7451:58;;7327:189;;;:::o;834:173::-;907:19;960;:17;:19::i;:::-;:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;960:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;960:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;960:40:2;;;;;;;;;;;;;;;;959:41;942:58;;834:173;:::o;344:31:67:-;;;;;;;;;;;;;:::o;3928:332:2:-;4013:22;4059:26;:24;:26::i;:::-;4051:35;;;;;;;;4215:38;4229:23;;4215:13;:38::i;:::-;4148:52;4158:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4158:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4158:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4158:41:2;;;;;;;;;;;;;;;;4148:5;:9;;:52;;;;:::i;:::-;:105;;;;;;;;4119:134;;3928:332;;;:::o;3435:320::-;3523:14;3561:26;:24;:26::i;:::-;3553:35;;;;;;;;3619:129;3746:1;3619:109;3689:38;3703:23;;3689:13;:38::i;:::-;3619:52;3629:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3629:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3629:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3629:41:2;;;;;;;;;;;;;;;;3619:5;:9;;:52;;;;:::i;:::-;:69;;:109;;;;:::i;:::-;:126;;:129;;;;:::i;:::-;3598:150;;3435:320;;;:::o;5464:198::-;5540:27;5613:41;5626:27;;5613:12;:41::i;:::-;5583:72;;5464:198;:::o;6270:199::-;6346:27;6419:42;6432:28;;6419:12;:42::i;:::-;6389:73;;6270:199;:::o;4409:172::-;4492:11;4573:1;4528:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4528:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4528:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4528:41:2;;;;;;;;;;;;;;;;:46;;4519:55;;4409:172;:::o;1060:116:84:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"./DaoCommonMini.sol\";\nimport \"./../lib/DaoStructs.sol\";\n\ncontract DaoRewardsManagerCommon is DaoCommonMini {\n\n    using DaoStructs for DaoStructs.DaoQuarterInfo;\n\n    // this is a struct that store information relevant for calculating the user rewards\n    // for the last participating quarter\n    struct UserRewards {\n        uint256 lastParticipatedQuarter;\n        uint256 lastQuarterThatRewardsWasUpdated;\n        uint256 effectiveDGDBalance;\n        uint256 effectiveModeratorDGDBalance;\n        DaoStructs.DaoQuarterInfo qInfo;\n    }\n\n    // struct to store variables needed in the execution of calculateGlobalRewardsBeforeNewQuarter\n    struct QuarterRewardsInfo {\n        uint256 previousQuarter;\n        uint256 totalEffectiveDGDPreviousQuarter;\n        uint256 totalEffectiveModeratorDGDLastQuarter;\n        uint256 dgxRewardsPoolLastQuarter;\n        uint256 userCount;\n        uint256 i;\n        DaoStructs.DaoQuarterInfo qInfo;\n        address currentUser;\n        address[] users;\n        bool doneCalculatingEffectiveBalance;\n        bool doneCalculatingModeratorEffectiveBalance;\n    }\n\n    // get the struct for the relevant information for calculating a user's DGX rewards for the last participated quarter\n    function getUserRewardsStruct(address _user)\n        internal\n        view\n        returns (UserRewards memory _data)\n    {\n        _data.lastParticipatedQuarter = daoRewardsStorage().lastParticipatedQuarter(_user);\n        _data.lastQuarterThatRewardsWasUpdated = daoRewardsStorage().lastQuarterThatRewardsWasUpdated(_user);\n        _data.qInfo = readQuarterInfo(_data.lastParticipatedQuarter);\n    }\n\n    // read the DaoQuarterInfo struct of a certain quarter\n    function readQuarterInfo(uint256 _quarterNumber)\n        internal\n        view\n        returns (DaoStructs.DaoQuarterInfo _qInfo)\n    {\n        (\n            _qInfo.minimalParticipationPoint,\n            _qInfo.quarterPointScalingFactor,\n            _qInfo.reputationPointScalingFactor,\n            _qInfo.totalEffectiveDGDPreviousQuarter\n        ) = daoRewardsStorage().readQuarterParticipantInfo(_quarterNumber);\n        (\n            _qInfo.moderatorMinimalParticipationPoint,\n            _qInfo.moderatorQuarterPointScalingFactor,\n            _qInfo.moderatorReputationPointScalingFactor,\n            _qInfo.totalEffectiveModeratorDGDLastQuarter\n        ) = daoRewardsStorage().readQuarterModeratorInfo(_quarterNumber);\n        (\n            _qInfo.dgxDistributionDay,\n            _qInfo.dgxRewardsPoolLastQuarter,\n            _qInfo.sumRewardsFromBeginning\n        ) = daoRewardsStorage().readQuarterGeneralInfo(_quarterNumber);\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoRewardsManagerCommon.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoRewardsManagerCommon.sol",
    "exportedSymbols": {
      "DaoRewardsManagerCommon": [
        1768
      ]
    },
    "id": 1769,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1631,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommonMini.sol",
        "file": "./DaoCommonMini.sol",
        "id": 1632,
        "nodeType": "ImportDirective",
        "scope": 1769,
        "sourceUnit": 1283,
        "src": "26:29:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "./../lib/DaoStructs.sol",
        "id": 1633,
        "nodeType": "ImportDirective",
        "scope": 1769,
        "sourceUnit": 8452,
        "src": "56:33:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1634,
              "name": "DaoCommonMini",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1282,
              "src": "127:13:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoCommonMini_$1282",
                "typeString": "contract DaoCommonMini"
              }
            },
            "id": 1635,
            "nodeType": "InheritanceSpecifier",
            "src": "127:13:4"
          }
        ],
        "contractDependencies": [
          1282,
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1768,
        "linearizedBaseContracts": [
          1768,
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoRewardsManagerCommon",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1638,
            "libraryName": {
              "contractScope": null,
              "id": 1636,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "154:10:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "148:47:4",
            "typeName": {
              "contractScope": null,
              "id": 1637,
              "name": "DaoStructs.DaoQuarterInfo",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8441,
              "src": "169:25:4",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                "typeString": "struct DaoStructs.DaoQuarterInfo"
              }
            }
          },
          {
            "canonicalName": "DaoRewardsManagerCommon.UserRewards",
            "id": 1649,
            "members": [
              {
                "constant": false,
                "id": 1640,
                "name": "lastParticipatedQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "361:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1639,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "361:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1642,
                "name": "lastQuarterThatRewardsWasUpdated",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "402:40:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1641,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "402:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1644,
                "name": "effectiveDGDBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "452:27:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1643,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "452:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1646,
                "name": "effectiveModeratorDGDBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "489:36:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1645,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "489:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1648,
                "name": "qInfo",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "535:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                  "typeString": "struct DaoStructs.DaoQuarterInfo"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1647,
                  "name": "DaoStructs.DaoQuarterInfo",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 8441,
                  "src": "535:25:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "UserRewards",
            "nodeType": "StructDefinition",
            "scope": 1768,
            "src": "332:241:4",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoRewardsManagerCommon.QuarterRewardsInfo",
            "id": 1673,
            "members": [
              {
                "constant": false,
                "id": 1651,
                "name": "previousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "714:23:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1650,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "714:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1653,
                "name": "totalEffectiveDGDPreviousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "747:40:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1652,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "747:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1655,
                "name": "totalEffectiveModeratorDGDLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "797:45:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1654,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "797:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1657,
                "name": "dgxRewardsPoolLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "852:33:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1656,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "852:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1659,
                "name": "userCount",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "895:17:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1658,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "895:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1661,
                "name": "i",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "922:9:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1660,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "922:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1663,
                "name": "qInfo",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "941:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                  "typeString": "struct DaoStructs.DaoQuarterInfo"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1662,
                  "name": "DaoStructs.DaoQuarterInfo",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 8441,
                  "src": "941:25:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1665,
                "name": "currentUser",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "982:19:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1664,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "982:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1668,
                "name": "users",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1011:15:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                  "typeString": "address[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 1666,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1011:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1667,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "1011:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                    "typeString": "address[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1670,
                "name": "doneCalculatingEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1036:36:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1669,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1036:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1672,
                "name": "doneCalculatingModeratorEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1082:45:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1671,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1082:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "QuarterRewardsInfo",
            "nodeType": "StructDefinition",
            "scope": 1768,
            "src": "678:456:4",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1709,
              "nodeType": "Block",
              "src": "1384:279:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1680,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1394:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1682,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastParticipatedQuarter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1640,
                      "src": "1394:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1686,
                          "name": "_user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1675,
                          "src": "1470:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1683,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "1426:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1426:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastParticipatedQuarter",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14571,
                        "src": "1426:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) view external returns (uint256)"
                        }
                      },
                      "id": 1687,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1426:50:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1394:82:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1689,
                  "nodeType": "ExpressionStatement",
                  "src": "1394:82:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1690,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1486:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastQuarterThatRewardsWasUpdated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1642,
                      "src": "1486:38:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1696,
                          "name": "_user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1675,
                          "src": "1580:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1693,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "1527:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1694,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1527:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastQuarterThatRewardsWasUpdated",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14579,
                        "src": "1527:52:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) view external returns (uint256)"
                        }
                      },
                      "id": 1697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1527:59:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1486:100:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1699,
                  "nodeType": "ExpressionStatement",
                  "src": "1486:100:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1700,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1596:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1702,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "qInfo",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1648,
                      "src": "1596:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory",
                        "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1704,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1678,
                            "src": "1626:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                              "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                            }
                          },
                          "id": 1705,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastParticipatedQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1640,
                          "src": "1626:29:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1703,
                        "name": "readQuarterInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1767,
                        "src": "1610:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_DaoQuarterInfo_$8441_memory_ptr_$",
                          "typeString": "function (uint256) view returns (struct DaoStructs.DaoQuarterInfo memory)"
                        }
                      },
                      "id": 1706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1610:46:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                        "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                      }
                    },
                    "src": "1596:60:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory",
                      "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                    }
                  },
                  "id": 1708,
                  "nodeType": "ExpressionStatement",
                  "src": "1596:60:4"
                }
              ]
            },
            "documentation": null,
            "id": 1710,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getUserRewardsStruct",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1675,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "1292:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1292:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1291:15:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1679,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1678,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "1354:24:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                    "typeString": "struct DaoRewardsManagerCommon.UserRewards"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1677,
                    "name": "UserRewards",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1649,
                    "src": "1354:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UserRewards_$1649_storage_ptr",
                      "typeString": "struct DaoRewardsManagerCommon.UserRewards"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1353:26:4"
            },
            "scope": 1768,
            "src": "1262:401:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1766,
              "nodeType": "Block",
              "src": "1862:805:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1717,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1886:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1719,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "minimalParticipationPoint",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8420,
                          "src": "1886:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1720,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1932:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1721,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "quarterPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8422,
                          "src": "1932:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1722,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1978:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1723,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "reputationPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8424,
                          "src": "1978:35:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1724,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2027:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "totalEffectiveDGDPreviousQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8426,
                          "src": "2027:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1726,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1872:204:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1730,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2126:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1727,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2079:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2079:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterParticipantInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15054,
                        "src": "2079:46:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256,uint256)"
                        }
                      },
                      "id": 1731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2079:62:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "src": "1872:269:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1733,
                  "nodeType": "ExpressionStatement",
                  "src": "1872:269:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1749,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1734,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2165:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1736,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorMinimalParticipationPoint",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8428,
                          "src": "2165:41:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1737,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2220:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1738,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorQuarterPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8430,
                          "src": "2220:41:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1739,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2275:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1740,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorReputationPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8432,
                          "src": "2275:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1741,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2333:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1742,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "totalEffectiveModeratorDGDLastQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8434,
                          "src": "2333:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1743,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2151:236:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1747,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2435:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1744,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2390:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2390:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterModeratorInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15012,
                        "src": "2390:44:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256,uint256)"
                        }
                      },
                      "id": 1748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2390:60:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "src": "2151:299:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1750,
                  "nodeType": "ExpressionStatement",
                  "src": "2151:299:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1751,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2474:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1753,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "dgxDistributionDay",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8436,
                          "src": "2474:25:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1754,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2513:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1755,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "dgxRewardsPoolLastQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8438,
                          "src": "2513:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1756,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2559:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1757,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "sumRewardsFromBeginning",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8440,
                          "src": "2559:30:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1758,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2460:139:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1762,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2645:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1759,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2602:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2602:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1761,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterGeneralInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14970,
                        "src": "2602:42:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 1763,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2602:58:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "2460:200:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1765,
                  "nodeType": "ExpressionStatement",
                  "src": "2460:200:4"
                }
              ]
            },
            "documentation": null,
            "id": 1767,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readQuarterInfo",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1712,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 1767,
                  "src": "1753:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1711,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1753:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1752:24:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1716,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1715,
                  "name": "_qInfo",
                  "nodeType": "VariableDeclaration",
                  "scope": 1767,
                  "src": "1824:32:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1714,
                    "name": "DaoStructs.DaoQuarterInfo",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8441,
                    "src": "1824:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                      "typeString": "struct DaoStructs.DaoQuarterInfo"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1823:34:4"
            },
            "scope": 1768,
            "src": "1728:939:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 1769,
        "src": "91:2578:4"
      }
    ],
    "src": "0:2670:4"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoRewardsManagerCommon.sol",
    "exportedSymbols": {
      "DaoRewardsManagerCommon": [
        1768
      ]
    },
    "id": 1769,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1631,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:4"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommonMini.sol",
        "file": "./DaoCommonMini.sol",
        "id": 1632,
        "nodeType": "ImportDirective",
        "scope": 1769,
        "sourceUnit": 1283,
        "src": "26:29:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/DaoStructs.sol",
        "file": "./../lib/DaoStructs.sol",
        "id": 1633,
        "nodeType": "ImportDirective",
        "scope": 1769,
        "sourceUnit": 8452,
        "src": "56:33:4",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1634,
              "name": "DaoCommonMini",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1282,
              "src": "127:13:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoCommonMini_$1282",
                "typeString": "contract DaoCommonMini"
              }
            },
            "id": 1635,
            "nodeType": "InheritanceSpecifier",
            "src": "127:13:4"
          }
        ],
        "contractDependencies": [
          1282,
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1768,
        "linearizedBaseContracts": [
          1768,
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoRewardsManagerCommon",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1638,
            "libraryName": {
              "contractScope": null,
              "id": 1636,
              "name": "DaoStructs",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8451,
              "src": "154:10:4",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoStructs_$8451",
                "typeString": "library DaoStructs"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "148:47:4",
            "typeName": {
              "contractScope": null,
              "id": 1637,
              "name": "DaoStructs.DaoQuarterInfo",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8441,
              "src": "169:25:4",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                "typeString": "struct DaoStructs.DaoQuarterInfo"
              }
            }
          },
          {
            "canonicalName": "DaoRewardsManagerCommon.UserRewards",
            "id": 1649,
            "members": [
              {
                "constant": false,
                "id": 1640,
                "name": "lastParticipatedQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "361:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1639,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "361:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1642,
                "name": "lastQuarterThatRewardsWasUpdated",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "402:40:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1641,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "402:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1644,
                "name": "effectiveDGDBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "452:27:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1643,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "452:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1646,
                "name": "effectiveModeratorDGDBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "489:36:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1645,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "489:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1648,
                "name": "qInfo",
                "nodeType": "VariableDeclaration",
                "scope": 1649,
                "src": "535:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                  "typeString": "struct DaoStructs.DaoQuarterInfo"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1647,
                  "name": "DaoStructs.DaoQuarterInfo",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 8441,
                  "src": "535:25:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "UserRewards",
            "nodeType": "StructDefinition",
            "scope": 1768,
            "src": "332:241:4",
            "visibility": "public"
          },
          {
            "canonicalName": "DaoRewardsManagerCommon.QuarterRewardsInfo",
            "id": 1673,
            "members": [
              {
                "constant": false,
                "id": 1651,
                "name": "previousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "714:23:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1650,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "714:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1653,
                "name": "totalEffectiveDGDPreviousQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "747:40:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1652,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "747:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1655,
                "name": "totalEffectiveModeratorDGDLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "797:45:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1654,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "797:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1657,
                "name": "dgxRewardsPoolLastQuarter",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "852:33:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1656,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "852:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1659,
                "name": "userCount",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "895:17:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1658,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "895:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1661,
                "name": "i",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "922:9:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 1660,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "922:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1663,
                "name": "qInfo",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "941:31:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                  "typeString": "struct DaoStructs.DaoQuarterInfo"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 1662,
                  "name": "DaoStructs.DaoQuarterInfo",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 8441,
                  "src": "941:25:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1665,
                "name": "currentUser",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "982:19:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1664,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "982:7:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1668,
                "name": "users",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1011:15:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                  "typeString": "address[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 1666,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1011:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1667,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "1011:9:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                    "typeString": "address[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1670,
                "name": "doneCalculatingEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1036:36:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1669,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1036:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1672,
                "name": "doneCalculatingModeratorEffectiveBalance",
                "nodeType": "VariableDeclaration",
                "scope": 1673,
                "src": "1082:45:4",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 1671,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "1082:4:4",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "QuarterRewardsInfo",
            "nodeType": "StructDefinition",
            "scope": 1768,
            "src": "678:456:4",
            "visibility": "public"
          },
          {
            "body": {
              "id": 1709,
              "nodeType": "Block",
              "src": "1384:279:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1688,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1680,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1394:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1682,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastParticipatedQuarter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1640,
                      "src": "1394:29:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1686,
                          "name": "_user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1675,
                          "src": "1470:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1683,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "1426:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1684,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1426:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1685,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastParticipatedQuarter",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14571,
                        "src": "1426:43:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) view external returns (uint256)"
                        }
                      },
                      "id": 1687,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1426:50:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1394:82:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1689,
                  "nodeType": "ExpressionStatement",
                  "src": "1394:82:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1690,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1486:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1692,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "lastQuarterThatRewardsWasUpdated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1642,
                      "src": "1486:38:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1696,
                          "name": "_user",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1675,
                          "src": "1580:5:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1693,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "1527:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1694,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1527:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "lastQuarterThatRewardsWasUpdated",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14579,
                        "src": "1527:52:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                          "typeString": "function (address) view external returns (uint256)"
                        }
                      },
                      "id": 1697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1527:59:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1486:100:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1699,
                  "nodeType": "ExpressionStatement",
                  "src": "1486:100:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 1700,
                        "name": "_data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1678,
                        "src": "1596:5:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                          "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                        }
                      },
                      "id": 1702,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "qInfo",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1648,
                      "src": "1596:11:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory",
                        "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1704,
                            "name": "_data",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1678,
                            "src": "1626:5:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                              "typeString": "struct DaoRewardsManagerCommon.UserRewards memory"
                            }
                          },
                          "id": 1705,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "lastParticipatedQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1640,
                          "src": "1626:29:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1703,
                        "name": "readQuarterInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1767,
                        "src": "1610:15:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_struct$_DaoQuarterInfo_$8441_memory_ptr_$",
                          "typeString": "function (uint256) view returns (struct DaoStructs.DaoQuarterInfo memory)"
                        }
                      },
                      "id": 1706,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1610:46:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                        "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                      }
                    },
                    "src": "1596:60:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory",
                      "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                    }
                  },
                  "id": 1708,
                  "nodeType": "ExpressionStatement",
                  "src": "1596:60:4"
                }
              ]
            },
            "documentation": null,
            "id": 1710,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getUserRewardsStruct",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1675,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "1292:13:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1674,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1292:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1291:15:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1679,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1678,
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "scope": 1710,
                  "src": "1354:24:4",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UserRewards_$1649_memory_ptr",
                    "typeString": "struct DaoRewardsManagerCommon.UserRewards"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1677,
                    "name": "UserRewards",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1649,
                    "src": "1354:11:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UserRewards_$1649_storage_ptr",
                      "typeString": "struct DaoRewardsManagerCommon.UserRewards"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1353:26:4"
            },
            "scope": 1768,
            "src": "1262:401:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1766,
              "nodeType": "Block",
              "src": "1862:805:4",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1717,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1886:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1719,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "minimalParticipationPoint",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8420,
                          "src": "1886:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1720,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1932:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1721,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "quarterPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8422,
                          "src": "1932:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1722,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "1978:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1723,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "reputationPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8424,
                          "src": "1978:35:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1724,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2027:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1725,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "totalEffectiveDGDPreviousQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8426,
                          "src": "2027:39:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1726,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "1872:204:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1730,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2126:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1727,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2079:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1728,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2079:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1729,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterParticipantInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15054,
                        "src": "2079:46:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256,uint256)"
                        }
                      },
                      "id": 1731,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2079:62:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "src": "1872:269:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1733,
                  "nodeType": "ExpressionStatement",
                  "src": "1872:269:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1749,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1734,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2165:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1736,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorMinimalParticipationPoint",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8428,
                          "src": "2165:41:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1737,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2220:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1738,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorQuarterPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8430,
                          "src": "2220:41:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1739,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2275:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1740,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "moderatorReputationPointScalingFactor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8432,
                          "src": "2275:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1741,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2333:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1742,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "totalEffectiveModeratorDGDLastQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8434,
                          "src": "2333:44:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1743,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2151:236:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1747,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2435:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1744,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2390:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2390:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterModeratorInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15012,
                        "src": "2390:44:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256,uint256)"
                        }
                      },
                      "id": 1748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2390:60:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256,uint256)"
                      }
                    },
                    "src": "2151:299:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1750,
                  "nodeType": "ExpressionStatement",
                  "src": "2151:299:4"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1751,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2474:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1753,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "dgxDistributionDay",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8436,
                          "src": "2474:25:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1754,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2513:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1755,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "dgxRewardsPoolLastQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8438,
                          "src": "2513:32:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 1756,
                            "name": "_qInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1715,
                            "src": "2559:6:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                              "typeString": "struct DaoStructs.DaoQuarterInfo memory"
                            }
                          },
                          "id": 1757,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": true,
                          "memberName": "sumRewardsFromBeginning",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 8440,
                          "src": "2559:30:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 1758,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2460:139:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1762,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1712,
                          "src": "2645:14:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1759,
                            "name": "daoRewardsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1251,
                            "src": "2602:17:4",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                              "typeString": "function () view returns (contract DaoRewardsStorage)"
                            }
                          },
                          "id": 1760,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2602:19:4",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                            "typeString": "contract DaoRewardsStorage"
                          }
                        },
                        "id": 1761,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "readQuarterGeneralInfo",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 14970,
                        "src": "2602:42:4",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) view external returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 1763,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2602:58:4",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "2460:200:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1765,
                  "nodeType": "ExpressionStatement",
                  "src": "2460:200:4"
                }
              ]
            },
            "documentation": null,
            "id": 1767,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "readQuarterInfo",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1712,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 1767,
                  "src": "1753:22:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1711,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1753:7:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1752:24:4"
            },
            "payable": false,
            "returnParameters": {
              "id": 1716,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1715,
                  "name": "_qInfo",
                  "nodeType": "VariableDeclaration",
                  "scope": 1767,
                  "src": "1824:32:4",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_memory_ptr",
                    "typeString": "struct DaoStructs.DaoQuarterInfo"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1714,
                    "name": "DaoStructs.DaoQuarterInfo",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 8441,
                    "src": "1824:25:4",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage_ptr",
                      "typeString": "struct DaoStructs.DaoQuarterInfo"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1823:34:4"
            },
            "scope": 1768,
            "src": "1728:939:4",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 1769,
        "src": "91:2578:4"
      }
    ],
    "src": "0:2670:4"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.043Z"
}