{
  "contractName": "MockDaoRewardsStorage",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readTotalEffectiveModeratorDGDLastQuarter",
      "outputs": [
        {
          "name": "_totalEffectiveModeratorDGDLastQuarter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_lastQuarter",
          "type": "uint256"
        }
      ],
      "name": "updateLastQuarterThatReputationWasUpdated",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastQuarterThatRewardsWasUpdated",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "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": false,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        },
        {
          "name": "_minimalParticipationPoint",
          "type": "uint256"
        },
        {
          "name": "_quarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_reputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveDGDPreviousQuarter",
          "type": "uint256"
        },
        {
          "name": "_moderatorMinimalQuarterPoint",
          "type": "uint256"
        },
        {
          "name": "_moderatorQuarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_moderatorReputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveModeratorDGDLastQuarter",
          "type": "uint256"
        },
        {
          "name": "_dgxDistributionDay",
          "type": "uint256"
        },
        {
          "name": "_dgxRewardsPoolLastQuarter",
          "type": "uint256"
        },
        {
          "name": "_sumRewardsFromBeginning",
          "type": "uint256"
        }
      ],
      "name": "updateQuarterInfo",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readQuarterInfo",
      "outputs": [
        {
          "name": "_minimalParticipationPoint",
          "type": "uint256"
        },
        {
          "name": "_quarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_reputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveDGDPreviousQuarter",
          "type": "uint256"
        },
        {
          "name": "_moderatorMinimalQuarterPoint",
          "type": "uint256"
        },
        {
          "name": "_moderatorQuarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_moderatorReputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveModeratorDGDLastQuarter",
          "type": "uint256"
        },
        {
          "name": "_dgxDistributionDay",
          "type": "uint256"
        },
        {
          "name": "_dgxRewardsPoolLastQuarter",
          "type": "uint256"
        },
        {
          "name": "_sumRewardsFromBeginning",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readQuarterParticipantInfo",
      "outputs": [
        {
          "name": "_minimalParticipationPoint",
          "type": "uint256"
        },
        {
          "name": "_quarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_reputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveDGDPreviousQuarter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_newClaimableDGX",
          "type": "uint256"
        }
      ],
      "name": "updateClaimableDGX",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "claimableDGXs",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_lastQuarter",
          "type": "uint256"
        }
      ],
      "name": "updatePreviousLastParticipatedQuarter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_lastQuarter",
          "type": "uint256"
        }
      ],
      "name": "updateLastParticipatedQuarter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readQuarterModeratorInfo",
      "outputs": [
        {
          "name": "_moderatorMinimalQuarterPoint",
          "type": "uint256"
        },
        {
          "name": "_moderatorQuarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_moderatorReputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "_totalEffectiveModeratorDGDLastQuarter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readDgxDistributionDay",
      "outputs": [
        {
          "name": "_distributionDay",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readRewardsPoolOfLastQuarter",
      "outputs": [
        {
          "name": "_rewardsPool",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "previousLastParticipatedQuarter",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastQuarterThatReputationWasUpdated",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "lastParticipatedQuarter",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readQuarterGeneralInfo",
      "outputs": [
        {
          "name": "_dgxDistributionDay",
          "type": "uint256"
        },
        {
          "name": "_dgxRewardsPoolLastQuarter",
          "type": "uint256"
        },
        {
          "name": "_sumRewardsFromBeginning",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_dgxClaimed",
          "type": "uint256"
        }
      ],
      "name": "addToTotalDgxClaimed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_lastQuarter",
          "type": "uint256"
        }
      ],
      "name": "updateLastQuarterThatRewardsWasUpdated",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalDGXsClaimed",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "allQuartersInfo",
      "outputs": [
        {
          "name": "minimalParticipationPoint",
          "type": "uint256"
        },
        {
          "name": "quarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "reputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "totalEffectiveDGDPreviousQuarter",
          "type": "uint256"
        },
        {
          "name": "moderatorMinimalParticipationPoint",
          "type": "uint256"
        },
        {
          "name": "moderatorQuarterPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "moderatorReputationPointScalingFactor",
          "type": "uint256"
        },
        {
          "name": "totalEffectiveModeratorDGDLastQuarter",
          "type": "uint256"
        },
        {
          "name": "dgxDistributionDay",
          "type": "uint256"
        },
        {
          "name": "dgxRewardsPoolLastQuarter",
          "type": "uint256"
        },
        {
          "name": "sumRewardsFromBeginning",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "readTotalEffectiveDGDLastQuarter",
      "outputs": [
        {
          "name": "_totalEffectiveDGDPreviousQuarter",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_resolver",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "mock_set_last_participated_quarter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_users",
          "type": "address[]"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "mock_bulk_set_last_participated_quarter",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_user",
          "type": "address"
        },
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "name": "mock_set_last_quarter_that_rewards_was_updated",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        },
        {
          "name": "_dgxDistributionDay",
          "type": "uint256"
        }
      ],
      "name": "mock_set_dgx_distribution_day",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f906000191690553480156200113457600080fd5b5060405160208062002c27833981018060405281019080805190602001909291905050508062001176602d54826200118a640100000000026401000000009004565b15156200118257600080fd5b50506200141b565b6000808273ffffffffffffffffffffffffffffffffffffffff16636d19a8826040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015620011f257600080fd5b505af115801562001207573d6000803e3d6000fd5b505050506040513d60208110156200121e57600080fd5b810190808051906020019092919050505090506000151581151514156200140f5730600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600181600019169055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c0f6ef4a600154600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015620013bc57600080fd5b505af1158015620013d1573d6000803e3d6000fd5b505050506040513d6020811015620013e857600080fd5b810190808051906020019092919050505015156200140557600080fd5b6001915062001414565b600091505b5092915050565b6117fc806200142b6000396000f300608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146101855780630a76be54146101dc5780630f491b11146102295780630f596e2d1461026a57806312d9b939146102da57806327ddd3ae146103275780633943380c1461037e5780633f83acff146103b1578063521fcb661461042257806356dfd2b7146104bd57806362961de9146105445780636a8cfd091461059a57806378af89ac146105e757806384dbe99e1461063e578063863eb74a14610675578063927bb668146106c2578063a301c0d21461070f578063a4eeadee14610765578063a78e00d6146107b2578063bb80203e146107f3578063bcda642414610834578063bd695d211461088b578063cefc2bff146108e2578063cf542aa914610939578063d715d6f514610988578063d8048c9d146109b5578063db4ecbc114610a02578063f03222f014610a59578063f1dfda7814610a84578063fedf945314610b0b575b600080fd5b34801561019157600080fd5b5061019a610b4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e857600080fd5b50610227600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b71565b005b34801561023557600080fd5b5061025460048036038101908080359060200190929190505050610bb9565b6040518082815260200191505060405180910390f35b34801561027657600080fd5b506102d86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610bd9565b005b3480156102e657600080fd5b50610325600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c5b565b005b34801561033357600080fd5b50610368600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf0565b6040518082815260200191505060405180910390f35b34801561038a57600080fd5b50610393610d08565b60405180826000191660001916815260200191505060405180910390f35b3480156103bd57600080fd5b506103e06004803603810190808035600019169060200190929190505050610d0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042e57600080fd5b506104bb600480360381019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b005b3480156104c957600080fd5b506104e860048036038101908080359060200190929190505050610f37565b604051808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b34801561055057600080fd5b5061056f6004803603810190808035906020019092919050505061106a565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156105a657600080fd5b506105e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110db565b005b3480156105f357600080fd5b50610628600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611139565b6040518082815260200191505060405180910390f35b34801561064a57600080fd5b506106736004803603810190808035906020019092919080359060200190929190505050611151565b005b34801561068157600080fd5b506106c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611170565b005b3480156106ce57600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ce565b005b34801561071b57600080fd5b5061073a6004803603810190808035906020019092919050505061122c565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561077157600080fd5b506107b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129d565b005b3480156107be57600080fd5b506107dd600480360381019080803590602001909291905050506112e5565b6040518082815260200191505060405180910390f35b3480156107ff57600080fd5b5061081e60048036038101908080359060200190929190505050611305565b6040518082815260200191505060405180910390f35b34801561084057600080fd5b50610875600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611325565b6040518082815260200191505060405180910390f35b34801561089757600080fd5b506108cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133d565b6040518082815260200191505060405180910390f35b3480156108ee57600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611355565b6040518082815260200191505060405180910390f35b34801561094557600080fd5b506109646004803603810190808035906020019092919050505061136d565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561099457600080fd5b506109b3600480360381019080803590602001909291905050506113c4565b005b3480156109c157600080fd5b50610a00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113f8565b005b348015610a0e57600080fd5b50610a1761148d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6557600080fd5b50610a6e6114b3565b6040518082815260200191505060405180910390f35b348015610a9057600080fd5b50610aaf600480360381019080803590602001909291905050506114b9565b604051808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b348015610b1757600080fd5b50610b3660048036038101908080359060200190929190505050611513565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80607560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060706000838152602001908152602001600020600701549050919050565b60008083519150600090505b81811015610c555782607360008684815181101515610c0057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610be5565b50505050565b610c9d606060405190810160405280601b5460001916600019168152602001601654600019166000191681526020016003546000191660001916815250611533565b1515610ca857600080fd5b80607660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60756020528060005260406000206000915090505481565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610da857600080fd5b505af1158015610dbc573d6000803e3d6000fd5b505050506040513d6020811015610dd257600080fd5b81019080805190602001909291905050509050919050565b610df5601b546116aa565b1515610e0057600080fd5b8a607060008e81526020019081526020016000206000018190555089607060008e81526020019081526020016000206001018190555088607060008e81526020019081526020016000206002018190555087607060008e81526020019081526020016000206003018190555086607060008e81526020019081526020016000206004018190555085607060008e81526020019081526020016000206005018190555084607060008e81526020019081526020016000206006018190555083607060008e81526020019081526020016000206007018190555082607060008e81526020019081526020016000206008018190555081607060008e81526020019081526020016000206009018190555080607060008e8152602001908152602001600020600a0181905550505050505050505050505050565b6000806000806000806000806000806000607060008d8152602001908152602001600020600001549a50607060008d8152602001908152602001600020600101549950607060008d8152602001908152602001600020600201549850607060008d8152602001908152602001600020600301549750607060008d8152602001908152602001600020600401549650607060008d8152602001908152602001600020600501549550607060008d8152602001908152602001600020600601549450607060008d8152602001908152602001600020600701549350607060008d8152602001908152602001600020600801549250607060008d8152602001908152602001600020600901549150607060008d8152602001908152602001600020600a0154905091939597999b90929496989a50565b600080600080607060008681526020019081526020016000206000015493506070600086815260200190815260200160002060010154925060706000868152602001908152602001600020600201549150607060008681526020019081526020016000206003015490509193509193565b6110e6601b546116aa565b15156110f157600080fd5b80607160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60716020528060005260406000206000915090505481565b8060706000848152602001908152602001600020600801819055505050565b61117b6016546116aa565b151561118657600080fd5b80607460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6111d96016546116aa565b15156111e457600080fd5b80607360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080600080607060008681526020019081526020016000206004015493506070600086815260200190815260200160002060050154925060706000868152602001908152602001600020600601549150607060008681526020019081526020016000206007015490509193509193565b80607360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060706000838152602001908152602001600020600801549050919050565b600060706000838152602001908152602001600020600901549050919050565b60746020528060005260406000206000915090505481565b60766020528060005260406000206000915090505481565b60736020528060005260406000206000915090505481565b6000806000607060008581526020019081526020016000206008015492506070600085815260200190815260200160002060090154915060706000858152602001908152602001600020600a015490509193909250565b6113cf601b546116aa565b15156113da57600080fd5b6113ef816072546117b490919063ffffffff16565b60728190555050565b61143a606060405190810160405280601b5460001916600019168152602001601654600019166000191681526020016003546000191660001916815250611533565b151561144557600080fd5b80607560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60725481565b607060205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a015490508b565b600060706000838152602001908152602001600020600301549050919050565b600080600060039150600090505b818110156116a357600060010260001916848260038110151561156057fe5b602002015160001916141561157457611696565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff85836003811015156115bf57fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561161e57600080fd5b505af1158015611632573d6000803e3d6000fd5b505050506040513d602081101561164857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561169557600192506116a3565b5b8080600101915050611541565b5050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561174457600080fd5b505af1158015611758573d6000803e3d6000fd5b505050506040513d602081101561176e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081830190508281101515156117c757fe5b809050929150505600a165627a7a72305820adcedfb21bae4fc58413c10539059e88c68e2557652505cec614bb429b521b200029",
  "deployedBytecode": "0x608060405260043610610180576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146101855780630a76be54146101dc5780630f491b11146102295780630f596e2d1461026a57806312d9b939146102da57806327ddd3ae146103275780633943380c1461037e5780633f83acff146103b1578063521fcb661461042257806356dfd2b7146104bd57806362961de9146105445780636a8cfd091461059a57806378af89ac146105e757806384dbe99e1461063e578063863eb74a14610675578063927bb668146106c2578063a301c0d21461070f578063a4eeadee14610765578063a78e00d6146107b2578063bb80203e146107f3578063bcda642414610834578063bd695d211461088b578063cefc2bff146108e2578063cf542aa914610939578063d715d6f514610988578063d8048c9d146109b5578063db4ecbc114610a02578063f03222f014610a59578063f1dfda7814610a84578063fedf945314610b0b575b600080fd5b34801561019157600080fd5b5061019a610b4c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e857600080fd5b50610227600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b71565b005b34801561023557600080fd5b5061025460048036038101908080359060200190929190505050610bb9565b6040518082815260200191505060405180910390f35b34801561027657600080fd5b506102d86004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610bd9565b005b3480156102e657600080fd5b50610325600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c5b565b005b34801561033357600080fd5b50610368600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cf0565b6040518082815260200191505060405180910390f35b34801561038a57600080fd5b50610393610d08565b60405180826000191660001916815260200191505060405180910390f35b3480156103bd57600080fd5b506103e06004803603810190808035600019169060200190929190505050610d0e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042e57600080fd5b506104bb600480360381019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b005b3480156104c957600080fd5b506104e860048036038101908080359060200190929190505050610f37565b604051808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b34801561055057600080fd5b5061056f6004803603810190808035906020019092919050505061106a565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156105a657600080fd5b506105e5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110db565b005b3480156105f357600080fd5b50610628600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611139565b6040518082815260200191505060405180910390f35b34801561064a57600080fd5b506106736004803603810190808035906020019092919080359060200190929190505050611151565b005b34801561068157600080fd5b506106c0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611170565b005b3480156106ce57600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ce565b005b34801561071b57600080fd5b5061073a6004803603810190808035906020019092919050505061122c565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561077157600080fd5b506107b0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061129d565b005b3480156107be57600080fd5b506107dd600480360381019080803590602001909291905050506112e5565b6040518082815260200191505060405180910390f35b3480156107ff57600080fd5b5061081e60048036038101908080359060200190929190505050611305565b6040518082815260200191505060405180910390f35b34801561084057600080fd5b50610875600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611325565b6040518082815260200191505060405180910390f35b34801561089757600080fd5b506108cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061133d565b6040518082815260200191505060405180910390f35b3480156108ee57600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611355565b6040518082815260200191505060405180910390f35b34801561094557600080fd5b506109646004803603810190808035906020019092919050505061136d565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561099457600080fd5b506109b3600480360381019080803590602001909291905050506113c4565b005b3480156109c157600080fd5b50610a00600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113f8565b005b348015610a0e57600080fd5b50610a1761148d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6557600080fd5b50610a6e6114b3565b6040518082815260200191505060405180910390f35b348015610a9057600080fd5b50610aaf600480360381019080803590602001909291905050506114b9565b604051808c81526020018b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019b50505050505050505050505060405180910390f35b348015610b1757600080fd5b50610b3660048036038101908080359060200190929190505050611513565b6040518082815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80607560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060706000838152602001908152602001600020600701549050919050565b60008083519150600090505b81811015610c555782607360008684815181101515610c0057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610be5565b50505050565b610c9d606060405190810160405280601b5460001916600019168152602001601654600019166000191681526020016003546000191660001916815250611533565b1515610ca857600080fd5b80607660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60756020528060005260406000206000915090505481565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015610da857600080fd5b505af1158015610dbc573d6000803e3d6000fd5b505050506040513d6020811015610dd257600080fd5b81019080805190602001909291905050509050919050565b610df5601b546116aa565b1515610e0057600080fd5b8a607060008e81526020019081526020016000206000018190555089607060008e81526020019081526020016000206001018190555088607060008e81526020019081526020016000206002018190555087607060008e81526020019081526020016000206003018190555086607060008e81526020019081526020016000206004018190555085607060008e81526020019081526020016000206005018190555084607060008e81526020019081526020016000206006018190555083607060008e81526020019081526020016000206007018190555082607060008e81526020019081526020016000206008018190555081607060008e81526020019081526020016000206009018190555080607060008e8152602001908152602001600020600a0181905550505050505050505050505050565b6000806000806000806000806000806000607060008d8152602001908152602001600020600001549a50607060008d8152602001908152602001600020600101549950607060008d8152602001908152602001600020600201549850607060008d8152602001908152602001600020600301549750607060008d8152602001908152602001600020600401549650607060008d8152602001908152602001600020600501549550607060008d8152602001908152602001600020600601549450607060008d8152602001908152602001600020600701549350607060008d8152602001908152602001600020600801549250607060008d8152602001908152602001600020600901549150607060008d8152602001908152602001600020600a0154905091939597999b90929496989a50565b600080600080607060008681526020019081526020016000206000015493506070600086815260200190815260200160002060010154925060706000868152602001908152602001600020600201549150607060008681526020019081526020016000206003015490509193509193565b6110e6601b546116aa565b15156110f157600080fd5b80607160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b60716020528060005260406000206000915090505481565b8060706000848152602001908152602001600020600801819055505050565b61117b6016546116aa565b151561118657600080fd5b80607460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6111d96016546116aa565b15156111e457600080fd5b80607360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080600080607060008681526020019081526020016000206004015493506070600086815260200190815260200160002060050154925060706000868152602001908152602001600020600601549150607060008681526020019081526020016000206007015490509193509193565b80607360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600060706000838152602001908152602001600020600801549050919050565b600060706000838152602001908152602001600020600901549050919050565b60746020528060005260406000206000915090505481565b60766020528060005260406000206000915090505481565b60736020528060005260406000206000915090505481565b6000806000607060008581526020019081526020016000206008015492506070600085815260200190815260200160002060090154915060706000858152602001908152602001600020600a015490509193909250565b6113cf601b546116aa565b15156113da57600080fd5b6113ef816072546117b490919063ffffffff16565b60728190555050565b61143a606060405190810160405280601b5460001916600019168152602001601654600019166000191681526020016003546000191660001916815250611533565b151561144557600080fd5b80607560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60725481565b607060205280600052604060002060009150905080600001549080600101549080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a015490508b565b600060706000838152602001908152602001600020600301549050919050565b600080600060039150600090505b818110156116a357600060010260001916848260038110151561156057fe5b602002015160001916141561157457611696565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff85836003811015156115bf57fe5b60200201516040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561161e57600080fd5b505af1158015611632573d6000803e3d6000fd5b505050506040513d602081101561164857600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561169557600192506116a3565b5b8080600101915050611541565b5050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561174457600080fd5b505af1158015611758573d6000803e3d6000fd5b505050506040513d602081101561176e57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16149050919050565b600081830190508281101515156117c757fe5b809050929150505600a165627a7a72305820adcedfb21bae4fc58413c10539059e88c68e2557652505cec614bb429b521b200029",
  "sourceMap": "73:978:41:-;;;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;;;;;;;;132:69:41;8:9:-1;5:2;;;30:1;27;20:12;5:2;132:69:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;188:9;2915:45:57;2920:28;;2950:9;2915:4;;;:45;;;:::i;:::-;2907:54;;;;;;;;2844:124;132:69:41;73:978;;1530:450:67;1617:13;1640:15;1675:9;1658:42;;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:44:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:44:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1658:44:67;;;;;;;;;;;;;;;;1640:62;;1726:5;1712:19;;:10;:19;;;1708:268;;;1768:4;1741:16;;:32;;;;;;;;;;;;;;;;;;1792:9;1781:8;;:20;;;;;;;;;;;;;;;;;;1815:4;1809:3;:10;;;;;;;1852:8;;;;;;;;;;;1835:49;;;1885:3;;1890:16;;;;;;;;;;;1835:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1835:72:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1835:72:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1835:72:67;;;;;;;;;;;;;;;;1827:81;;;;;;;;1927:4;1916:15;;1708:268;;;1964:5;1953:16;;1708:268;1530:450;;;;;:::o;73:978:41:-;;;;;;;",
  "deployedSourceMap": "73:978:41:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;656:187:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;656:187:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10654:299:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10654:299:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;379:271:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;379:271:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:287:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5739:287:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2363:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2363:68:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18:67;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2974:1810:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2974:1810:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6235:1818;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6235:1818:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9412:732;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9412:732:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4790:202;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4790:202:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;723:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;723:48:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;849:200:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;849:200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5217:229:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5217:229:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4998:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4998:213:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8592:814;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8592:814:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;207:166:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;207:166:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10150:217:57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10150:217:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10959:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10959:222:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1910:67:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2766:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2766:71:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1643:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1643:59:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8059:527;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8059:527:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6032:197;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6032:197:57;;;;;;;;;;;;;;;;;;;;;;;;;;5452:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5452:281:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;1189::57;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1189:31:57;;;;;;;;;;;;;;;;;;;;;;;533:68;;8:9:-1;5:2;;;30:1;27;20:12;5:2;533:68:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10373:275;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10373:275:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;;;;;;;;;;;;:::o;656:187:41:-;822:14;780:32;:39;813:5;780:39;;;;;;;;;;;;;;;:56;;;;656:187;;:::o;10654:299:57:-;10774:46;10877:15;:31;10893:14;10877:31;;;;;;;;;;;:69;;;10836:110;;10654:299;;;:::o;379:271:41:-;499:10;540:9;512:6;:13;499:26;;552:1;540:13;;535:109;559:2;555:1;:6;535:109;;;619:14;582:23;:34;606:6;613:1;606:9;;;;;;;;;;;;;;;;;;582:34;;;;;;;;;;;;;;;:51;;;;563:3;;;;;;;535:109;;;379:271;;;;:::o;5739:287:57:-;5864:87;;;;;;;;;;5880:28;;5864:87;;;;;;;;;;5910:26;;5864:87;;;;;;;;;;5938:11;;5864:87;;;;;;;;;:14;:87::i;:::-;5856:96;;;;;;;;6007:12;5962:35;:42;5998:5;5962:42;;;;;;;;;;;;;;;:57;;;;5739:287;;:::o;2363:68::-;;;;;;;;;;;;;;;;;:::o;264:18:67:-;;;;:::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;2974:1810:57:-;3599:39;3609:28;;3599:9;:39::i;:::-;3591:48;;;;;;;;3709:26;3649:15;:31;3665:14;3649:31;;;;;;;;;;;:57;;:86;;;;3805:26;3745:15;:31;3761:14;3745:31;;;;;;;;;;;:57;;:86;;;;3904:29;3841:15;:31;3857:14;3841:31;;;;;;;;;;;:60;;:92;;;;4010:33;3943:15;:31;3959:14;3943:31;;;;;;;;;;;:64;;:100;;;;4123:29;4054:15;:31;4070:14;4054:31;;;;;;;;;;;:66;;:98;;;;4231:35;4162:15;:31;4178:14;4162:31;;;;;;;;;;;:66;;:104;;;;4348:38;4276:15;:31;4292:14;4276:31;;;;;;;;;;;:69;;:110;;;;4468:38;4396:15;:31;4412:14;4396:31;;;;;;;;;;;:69;;:110;;;;4570:19;4517:15;:31;4533:14;4517:31;;;;;;;;;;;:50;;:72;;;;4659:26;4599:15;:31;4615:14;4599:31;;;;;;;;;;;:57;;:86;;;;4753:24;4695:15;:31;4711:14;4695:31;;;;;;;;;;;:55;;:82;;;;2974:1810;;;;;;;;;;;;:::o;6235:1818::-;6342:34;6390;6438:37;6489:41;6545:37;6596:43;6653:46;6713;6774:27;6815:34;6863:32;6949:15;:31;6965:14;6949:31;;;;;;;;;;;:57;;;6920:86;;7045:15;:31;7061:14;7045:31;;;;;;;;;;;:57;;;7016:86;;7144:15;:31;7160:14;7144:31;;;;;;;;;;;:60;;;7112:92;;7250:15;:31;7266:14;7250:31;;;;;;;;;;;:64;;;7214:100;;7356:15;:31;7372:14;7356:31;;;;;;;;;;;:66;;;7324:98;;7470:15;:31;7486:14;7470:31;;;;;;;;;;;:66;;;7432:104;;7587:15;:31;7603:14;7587:31;;;;;;;;;;;:69;;;7546:110;;7707:15;:31;7723:14;7707:31;;;;;;;;;;;:69;;;7666:110;;7808:15;:31;7824:14;7808:31;;;;;;;;;;;:50;;;7786:72;;7897:15;:31;7913:14;7897:31;;;;;;;;;;;:57;;;7868:86;;7991:15;:31;8007:14;7991:31;;;;;;;;;;;:55;;;7964:82;;6235:1818;;;;;;;;;;;;;:::o;9412:732::-;9530:34;9578;9626:37;9677:41;9772:15;:31;9788:14;9772:31;;;;;;;;;;;:57;;;9743:86;;9868:15;:31;9884:14;9868:31;;;;;;;;;;;:57;;;9839:86;;9967:15;:31;9983:14;9967:31;;;;;;;;;;;:60;;;9935:92;;10073:15;:31;10089:14;10073:31;;;;;;;;;;;:64;;;10037:100;;9412:732;;;;;:::o;4790:202::-;4896:39;4906:28;;4896:9;:39::i;:::-;4888:48;;;;;;;;4969:16;4946:13;:20;4960:5;4946:20;;;;;;;;;;;;;;;:39;;;;4790:202;;:::o;723:48::-;;;;;;;;;;;;;;;;;:::o;849:200:41:-;1023:19;970:15;:31;986:14;970:31;;;;;;;;;;;:50;;:72;;;;849:200;;:::o;5217:229:57:-;5338:37;5348:26;;5338:9;:37::i;:::-;5330:46;;;;;;;;5427:12;5386:31;:38;5418:5;5386:38;;;;;;;;;;;;;;;:53;;;;5217:229;;:::o;4998:213::-;5111:37;5121:26;;5111:9;:37::i;:::-;5103:46;;;;;;;;5192:12;5159:23;:30;5183:5;5159:30;;;;;;;;;;;;;;;:45;;;;4998:213;;:::o;8592:814::-;8708:37;8759:43;8816:46;8876;8979:15;:31;8995:14;8979:31;;;;;;;;;;;:66;;;8947:98;;9093:15;:31;9109:14;9093:31;;;;;;;;;;;:66;;;9055:104;;9210:15;:31;9226:14;9210:31;;;;;;;;;;;:69;;;9169:110;;9330:15;:31;9346:14;9330:31;;;;;;;;;;;:69;;;9289:110;;8592:814;;;;;:::o;207:166:41:-;352:14;319:23;:30;343:5;319:30;;;;;;;;;;;;;;;:47;;;;207:166;;:::o;10150:217:57:-;10251:24;10310:15;:31;10326:14;10310:31;;;;;;;;;;;:50;;;10291:69;;10150:217;;;:::o;10959:222::-;11066:20;11117:15;:31;11133:14;11117:31;;;;;;;;;;;:57;;;11102:72;;10959:222;;;:::o;1910:67::-;;;;;;;;;;;;;;;;;:::o;2766:71::-;;;;;;;;;;;;;;;;;:::o;1643:59::-;;;;;;;;;;;;;;;;;:::o;8059:527::-;8173:27;8214:34;8262:32;8341:15;:31;8357:14;8341:31;;;;;;;;;;;:50;;;8319:72;;8430:15;:31;8446:14;8430:31;;;;;;;;;;;:57;;;8401:86;;8524:15;:31;8540:14;8524:31;;;;;;;;;;;:55;;;8497:82;;8059:527;;;;;:::o;6032:197::-;6120:39;6130:28;;6120:9;:39::i;:::-;6112:48;;;;;;;;6189:33;6210:11;6189:16;;:20;;:33;;;;:::i;:::-;6170:16;:52;;;;6032:197;:::o;5452:281::-;5574:87;;;;;;;;;;5590:28;;5574:87;;;;;;;;;;5620:26;;5574:87;;;;;;;;;;5648:11;;5574:87;;;;;;;;;:14;:87::i;:::-;5566:96;;;;;;;;5714:12;5672:32;:39;5705:5;5672:39;;;;;;;;;;;;;;;:54;;;;5452:281;;:::o;344:31:67:-;;;;;;;;;;;;;:::o;1189::57:-;;;;:::o;533:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10373:275::-;10484:41;10577:15;:31;10593:14;10577:31;;;;;;;;;;;:64;;;10541:100;;10373:275;;;:::o;881:350:67:-;951:12;971:10;1012:9;984:17;971:30;;1024:1;1012:13;;1007:220;1031:2;1027:1;:6;1007:220;;;1077:3;1069:12;;1052:29;;;:10;1063:1;1052:13;;;;;;;;;;;;;:29;;;;1048:43;;;1083:8;;1048:43;1134:8;;;;;;;;;;;1117:39;;;1157:10;1168:1;1157:13;;;;;;;;;;;;;1117:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1117:54:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1117:54:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1117:54:67;;;;;;;;;;;;;;;;1103:68;;:10;:68;;;1099:122;;;1193:4;1183:14;;1207:5;;1099:122;1007:220;1035:3;;;;;;;1007:220;;;881:350;;;;;:::o;610:160::-;671:12;732:8;;;;;;;;;;;715:39;;;755:9;715:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;715:50:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;715:50:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;715:50:67;;;;;;;;;;;;;;;;701:64;;:10;:64;;;691:74;;610:160;;;:::o;1238:128:84:-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"../../storage/DaoRewardsStorage.sol\";\n\ncontract MockDaoRewardsStorage is DaoRewardsStorage {\n\n    constructor(address _resolver) public DaoRewardsStorage(_resolver) {}\n\n    function mock_set_last_participated_quarter(address _user, uint256 _quarterNumber)\n        public\n    {\n        lastParticipatedQuarter[_user] = _quarterNumber;\n    }\n\n    function mock_bulk_set_last_participated_quarter(address[] _users, uint256 _quarterNumber)\n        public\n    {\n        uint256 _n = _users.length;\n        for (uint256 i = 0; i < _n; i++) {\n            lastParticipatedQuarter[_users[i]] = _quarterNumber;\n        }\n    }\n\n    function mock_set_last_quarter_that_rewards_was_updated(address _user, uint256 _quarterNumber)\n        public\n    {\n        lastQuarterThatRewardsWasUpdated[_user] = _quarterNumber;\n    }\n\n    function mock_set_dgx_distribution_day(uint256 _quarterNumber, uint256 _dgxDistributionDay)\n        public\n    {\n        allQuartersInfo[_quarterNumber].dgxDistributionDay = _dgxDistributionDay;\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDaoRewardsStorage.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDaoRewardsStorage.sol",
    "exportedSymbols": {
      "MockDaoRewardsStorage": [
        10844
      ]
    },
    "id": 10845,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10754,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:41"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoRewardsStorage.sol",
        "file": "../../storage/DaoRewardsStorage.sol",
        "id": 10755,
        "nodeType": "ImportDirective",
        "scope": 10845,
        "sourceUnit": 15116,
        "src": "26:45:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10756,
              "name": "DaoRewardsStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 15115,
              "src": "107:17:41",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                "typeString": "contract DaoRewardsStorage"
              }
            },
            "id": 10757,
            "nodeType": "InheritanceSpecifier",
            "src": "107:17:41"
          }
        ],
        "contractDependencies": [
          1629,
          15115,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10844,
        "linearizedBaseContracts": [
          10844,
          15115,
          1629,
          18628
        ],
        "name": "MockDaoRewardsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 10765,
              "nodeType": "Block",
              "src": "199:2:41",
              "statements": []
            },
            "documentation": null,
            "id": 10766,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 10762,
                    "name": "_resolver",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10759,
                    "src": "188:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 10763,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10761,
                  "name": "DaoRewardsStorage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 15115,
                  "src": "170:17:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_DaoRewardsStorage_$15115_$",
                    "typeString": "type(contract DaoRewardsStorage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "170:28:41"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10759,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 10766,
                  "src": "144:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10758,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "144:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "143:19:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10764,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "199:0:41"
            },
            "scope": 10844,
            "src": "132:69:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10779,
              "nodeType": "Block",
              "src": "309:64:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10777,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10773,
                        "name": "lastParticipatedQuarter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14571,
                        "src": "319:23:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 10775,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 10774,
                        "name": "_user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10768,
                        "src": "343:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "319:30:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10776,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10770,
                      "src": "352:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "319:47:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10778,
                  "nodeType": "ExpressionStatement",
                  "src": "319:47:41"
                }
              ]
            },
            "documentation": null,
            "id": 10780,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_last_participated_quarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10768,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 10780,
                  "src": "251:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10767,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "251:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10770,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10780,
                  "src": "266:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10769,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "250:39:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "309:0:41"
            },
            "scope": 10844,
            "src": "207:166:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10813,
              "nodeType": "Block",
              "src": "489:161:41",
              "statements": [
                {
                  "assignments": [
                    10789
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10789,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 10814,
                      "src": "499:10:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10788,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "499:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10792,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 10790,
                      "name": "_users",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10783,
                      "src": "512:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 10791,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "512:13:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "499:26:41"
                },
                {
                  "body": {
                    "id": 10811,
                    "nodeType": "Block",
                    "src": "568:76:41",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 10803,
                              "name": "lastParticipatedQuarter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14571,
                              "src": "582:23:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 10807,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 10804,
                                "name": "_users",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10783,
                                "src": "606:6:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 10806,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 10805,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10794,
                                "src": "613:1:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "606:9:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "582:34:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 10808,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10785,
                            "src": "619:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "582:51:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10810,
                        "nodeType": "ExpressionStatement",
                        "src": "582:51:41"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10797,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10794,
                      "src": "555:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10798,
                      "name": "_n",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10789,
                      "src": "559:2:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "555:6:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10812,
                  "initializationExpression": {
                    "assignments": [
                      10794
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10794,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 10814,
                        "src": "540:9:41",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10793,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "540:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 10796,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 10795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "552:1:41",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "540:13:41"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 10801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "563:3:41",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 10800,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10794,
                        "src": "563:1:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10802,
                    "nodeType": "ExpressionStatement",
                    "src": "563:3:41"
                  },
                  "nodeType": "ForStatement",
                  "src": "535:109:41"
                }
              ]
            },
            "documentation": null,
            "id": 10814,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_bulk_set_last_participated_quarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10786,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10783,
                  "name": "_users",
                  "nodeType": "VariableDeclaration",
                  "scope": 10814,
                  "src": "428:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10781,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "428:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 10782,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "428:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10785,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10814,
                  "src": "446:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10784,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "427:42:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "489:0:41"
            },
            "scope": 10844,
            "src": "379:271:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10827,
              "nodeType": "Block",
              "src": "770:73:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10821,
                        "name": "lastQuarterThatRewardsWasUpdated",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14579,
                        "src": "780:32:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 10823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 10822,
                        "name": "_user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10816,
                        "src": "813:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "780:39:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10824,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10818,
                      "src": "822:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "780:56:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10826,
                  "nodeType": "ExpressionStatement",
                  "src": "780:56:41"
                }
              ]
            },
            "documentation": null,
            "id": 10828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_last_quarter_that_rewards_was_updated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10819,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10816,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 10828,
                  "src": "712:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10815,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "712:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10818,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10828,
                  "src": "727:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10817,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "711:39:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10820,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "770:0:41"
            },
            "scope": 10844,
            "src": "656:187:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10842,
              "nodeType": "Block",
              "src": "960:89:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 10835,
                          "name": "allQuartersInfo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14561,
                          "src": "970:15:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DaoQuarterInfo_$8441_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.DaoQuarterInfo storage ref)"
                          }
                        },
                        "id": 10837,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 10836,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10830,
                          "src": "986:14:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "970:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage",
                          "typeString": "struct DaoStructs.DaoQuarterInfo storage ref"
                        }
                      },
                      "id": 10838,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "dgxDistributionDay",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8436,
                      "src": "970:50:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10839,
                      "name": "_dgxDistributionDay",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10832,
                      "src": "1023:19:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "970:72:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10841,
                  "nodeType": "ExpressionStatement",
                  "src": "970:72:41"
                }
              ]
            },
            "documentation": null,
            "id": 10843,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_dgx_distribution_day",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10830,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10843,
                  "src": "888:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "888:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10832,
                  "name": "_dgxDistributionDay",
                  "nodeType": "VariableDeclaration",
                  "scope": 10843,
                  "src": "912:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10831,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "912:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "887:53:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10834,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "960:0:41"
            },
            "scope": 10844,
            "src": "849:200:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 10845,
        "src": "73:978:41"
      }
    ],
    "src": "0:1052:41"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/mock/storage/MockDaoRewardsStorage.sol",
    "exportedSymbols": {
      "MockDaoRewardsStorage": [
        10844
      ]
    },
    "id": 10845,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10754,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:41"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoRewardsStorage.sol",
        "file": "../../storage/DaoRewardsStorage.sol",
        "id": 10755,
        "nodeType": "ImportDirective",
        "scope": 10845,
        "sourceUnit": 15116,
        "src": "26:45:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10756,
              "name": "DaoRewardsStorage",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 15115,
              "src": "107:17:41",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                "typeString": "contract DaoRewardsStorage"
              }
            },
            "id": 10757,
            "nodeType": "InheritanceSpecifier",
            "src": "107:17:41"
          }
        ],
        "contractDependencies": [
          1629,
          15115,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10844,
        "linearizedBaseContracts": [
          10844,
          15115,
          1629,
          18628
        ],
        "name": "MockDaoRewardsStorage",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 10765,
              "nodeType": "Block",
              "src": "199:2:41",
              "statements": []
            },
            "documentation": null,
            "id": 10766,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 10762,
                    "name": "_resolver",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10759,
                    "src": "188:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 10763,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10761,
                  "name": "DaoRewardsStorage",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 15115,
                  "src": "170:17:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_DaoRewardsStorage_$15115_$",
                    "typeString": "type(contract DaoRewardsStorage)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "170:28:41"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10760,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10759,
                  "name": "_resolver",
                  "nodeType": "VariableDeclaration",
                  "scope": 10766,
                  "src": "144:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10758,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "144:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "143:19:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10764,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "199:0:41"
            },
            "scope": 10844,
            "src": "132:69:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10779,
              "nodeType": "Block",
              "src": "309:64:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10777,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10773,
                        "name": "lastParticipatedQuarter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14571,
                        "src": "319:23:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 10775,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 10774,
                        "name": "_user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10768,
                        "src": "343:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "319:30:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10776,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10770,
                      "src": "352:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "319:47:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10778,
                  "nodeType": "ExpressionStatement",
                  "src": "319:47:41"
                }
              ]
            },
            "documentation": null,
            "id": 10780,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_last_participated_quarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10768,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 10780,
                  "src": "251:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10767,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "251:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10770,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10780,
                  "src": "266:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10769,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "266:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "250:39:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10772,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "309:0:41"
            },
            "scope": 10844,
            "src": "207:166:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10813,
              "nodeType": "Block",
              "src": "489:161:41",
              "statements": [
                {
                  "assignments": [
                    10789
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10789,
                      "name": "_n",
                      "nodeType": "VariableDeclaration",
                      "scope": 10814,
                      "src": "499:10:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 10788,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "499:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10792,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 10790,
                      "name": "_users",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10783,
                      "src": "512:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[] memory"
                      }
                    },
                    "id": 10791,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "512:13:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "499:26:41"
                },
                {
                  "body": {
                    "id": 10811,
                    "nodeType": "Block",
                    "src": "568:76:41",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 10803,
                              "name": "lastParticipatedQuarter",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 14571,
                              "src": "582:23:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                              }
                            },
                            "id": 10807,
                            "indexExpression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 10804,
                                "name": "_users",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10783,
                                "src": "606:6:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                  "typeString": "address[] memory"
                                }
                              },
                              "id": 10806,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 10805,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10794,
                                "src": "613:1:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "606:9:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "582:34:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 10808,
                            "name": "_quarterNumber",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10785,
                            "src": "619:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "582:51:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10810,
                        "nodeType": "ExpressionStatement",
                        "src": "582:51:41"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 10797,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10794,
                      "src": "555:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 10798,
                      "name": "_n",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10789,
                      "src": "559:2:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "555:6:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 10812,
                  "initializationExpression": {
                    "assignments": [
                      10794
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 10794,
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "scope": 10814,
                        "src": "540:9:41",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 10793,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "540:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 10796,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 10795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "552:1:41",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "540:13:41"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 10801,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "563:3:41",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 10800,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10794,
                        "src": "563:1:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10802,
                    "nodeType": "ExpressionStatement",
                    "src": "563:3:41"
                  },
                  "nodeType": "ForStatement",
                  "src": "535:109:41"
                }
              ]
            },
            "documentation": null,
            "id": 10814,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_bulk_set_last_participated_quarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10786,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10783,
                  "name": "_users",
                  "nodeType": "VariableDeclaration",
                  "scope": 10814,
                  "src": "428:16:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10781,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "428:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 10782,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "428:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10785,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10814,
                  "src": "446:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10784,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "427:42:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10787,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "489:0:41"
            },
            "scope": 10844,
            "src": "379:271:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10827,
              "nodeType": "Block",
              "src": "770:73:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10821,
                        "name": "lastQuarterThatRewardsWasUpdated",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14579,
                        "src": "780:32:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                          "typeString": "mapping(address => uint256)"
                        }
                      },
                      "id": 10823,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 10822,
                        "name": "_user",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10816,
                        "src": "813:5:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "780:39:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10824,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10818,
                      "src": "822:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "780:56:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10826,
                  "nodeType": "ExpressionStatement",
                  "src": "780:56:41"
                }
              ]
            },
            "documentation": null,
            "id": 10828,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_last_quarter_that_rewards_was_updated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10819,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10816,
                  "name": "_user",
                  "nodeType": "VariableDeclaration",
                  "scope": 10828,
                  "src": "712:13:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10815,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "712:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10818,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10828,
                  "src": "727:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10817,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "727:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "711:39:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10820,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "770:0:41"
            },
            "scope": 10844,
            "src": "656:187:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10842,
              "nodeType": "Block",
              "src": "960:89:41",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10840,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 10835,
                          "name": "allQuartersInfo",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 14561,
                          "src": "970:15:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_DaoQuarterInfo_$8441_storage_$",
                            "typeString": "mapping(uint256 => struct DaoStructs.DaoQuarterInfo storage ref)"
                          }
                        },
                        "id": 10837,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 10836,
                          "name": "_quarterNumber",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10830,
                          "src": "986:14:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "970:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DaoQuarterInfo_$8441_storage",
                          "typeString": "struct DaoStructs.DaoQuarterInfo storage ref"
                        }
                      },
                      "id": 10838,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "dgxDistributionDay",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 8436,
                      "src": "970:50:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10839,
                      "name": "_dgxDistributionDay",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10832,
                      "src": "1023:19:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "970:72:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10841,
                  "nodeType": "ExpressionStatement",
                  "src": "970:72:41"
                }
              ]
            },
            "documentation": null,
            "id": 10843,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mock_set_dgx_distribution_day",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10833,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10830,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 10843,
                  "src": "888:22:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10829,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "888:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10832,
                  "name": "_dgxDistributionDay",
                  "nodeType": "VariableDeclaration",
                  "scope": 10843,
                  "src": "912:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10831,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "912:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "887:53:41"
            },
            "payable": false,
            "returnParameters": {
              "id": 10834,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "960:0:41"
            },
            "scope": 10844,
            "src": "849:200:41",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 10845,
        "src": "73:978:41"
      }
    ],
    "src": "0:1052:41"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.090Z"
}