{
  "contractName": "DaoCommonMini",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "resolver",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "key",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "get_contract",
      "outputs": [
        {
          "name": "_contract",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CONTRACT_ADDRESS",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isDaoNotReplaced",
      "outputs": [
        {
          "name": "_isNotReplaced",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isLockingPhase",
      "outputs": [
        {
          "name": "_isLockingPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isMainPhase",
      "outputs": [
        {
          "name": "_isMainPhase",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentQuarterNumber",
      "outputs": [
        {
          "name": "_quarterNumber",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currentTimeInQuarter",
      "outputs": [
        {
          "name": "_currentT",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_configKey",
          "type": "bytes32"
        }
      ],
      "name": "getUintConfig",
      "outputs": [
        {
          "name": "_configValue",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260006001026003906000191690556000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f70726f706f73616c5f73746174655f70726570726f706f73616c0000000000006005906000191690557f70726f706f73616c5f73746174655f64726166740000000000000000000000006006906000191690557f70726f706f73616c5f73746174655f6d6f6465726174656400000000000000006007906000191690557f70726f706f73616c5f73746174655f6f6e676f696e67000000000000000000006008906000191690557f70726f706f73616c5f73746174655f636c6f73656400000000000000000000006009906000191690557f70726f706f73616c5f73746174655f6172636869766564000000000000000000600a906000191690556001600b556002600c556003600d556001600e556002600f5560036010557f696e7465725f6467645f696400000000000000000000000000000000000000006011906000191690557f696e7465725f6d6f645f6467645f6964000000000000000000000000000000006012906000191690557f696e7465725f626f6e75735f63616c63756c6174696f6e5f69640000000000006013906000191690557f64616f00000000000000000000000000000000000000000000000000000000006014906000191690557f64616f3a7370656369616c3a70726f706f73616c0000000000000000000000006015906000191690557f64616f3a7374616b652d6c6f636b696e670000000000000000000000000000006016906000191690557f64616f3a766f74696e67000000000000000000000000000000000000000000006017906000191690557f64616f3a766f74696e673a636c61696d730000000000000000000000000000006018906000191690557f64616f3a73766f74696e673a636c61696d7300000000000000000000000000006019906000191690557f64616f3a6964656e746974790000000000000000000000000000000000000000601a906000191690557f64616f3a726577617264732d6d616e6167657200000000000000000000000000601b906000191690557f64616f3a726577617264732d6578747261730000000000000000000000000000601c906000191690557f64616f3a726f6c65730000000000000000000000000000000000000000000000601d906000191690557f64616f3a66756e64696e672d6d616e6167657200000000000000000000000000601e906000191690557f64616f3a77686974656c697374696e6700000000000000000000000000000000601f906000191690557f64616f3a696e666f726d6174696f6e00000000000000000000000000000000006020906000191690557f736572766963653a726f6c6500000000000000000000000000000000000000006021906000191690557f736572766963653a64616f3a696e666f000000000000000000000000000000006022906000191690557f736572766963653a64616f3a6c697374696e67000000000000000000000000006023906000191690557f736572766963653a64616f3a63616c63756c61746f72000000000000000000006024906000191690557f73746f726167653a64616f0000000000000000000000000000000000000000006025906000191690557f73746f726167653a64616f3a636f756e746572000000000000000000000000006026906000191690557f73746f726167653a64616f3a75706772616465000000000000000000000000006027906000191690557f73746f726167653a64616f3a6964656e746974790000000000000000000000006028906000191690557f73746f726167653a64616f3a706f696e747300000000000000000000000000006029906000191690557f73746f726167653a64616f3a7370656369616c00000000000000000000000000602a906000191690557f73746f726167653a64616f3a636f6e6669670000000000000000000000000000602b906000191690557f73746f726167653a64616f3a7374616b65000000000000000000000000000000602c906000191690557f73746f726167653a64616f3a7265776172647300000000000000000000000000602d906000191690557f73746f726167653a64616f3a77686974656c697374696e670000000000000000602e906000191690557f73746f726167653a696e7465726d6564696174653a726573756c747300000000602f906000191690557f743a6467640000000000000000000000000000000000000000000000000000006030906000191690557f743a6467780000000000000000000000000000000000000000000000000000006031906000191690557f743a6261646765000000000000000000000000000000000000000000000000006032906000191690556001603360006101000a81548160ff021916908360ff1602179055506002603360016101000a81548160ff021916908360ff1602179055506003603360026101000a81548160ff021916908360ff1602179055506004603360036101000a81548160ff021916908360ff1602179055506276a7006034557f6d696e5f6467645f7061727469636970616e74000000000000000000000000006035906000191690557f6d696e5f6467645f6d6f64657261746f720000000000000000000000000000006036906000191690557f6d696e5f72657075746174696f6e5f6d6f64657261746f7200000000000000006037906000191690557f6c6f636b696e675f70686173655f6475726174696f6e000000000000000000006038906000191690557f717561727465725f6475726174696f6e000000000000000000000000000000006039906000191690557f766f74696e675f636f6d6d69745f706861736500000000000000000000000000603a906000191690557f766f74696e675f70686173655f746f74616c0000000000000000000000000000603b906000191690557f696e746572696d5f766f74696e675f636f6d6d69745f70686173650000000000603c906000191690557f696e746572696d5f766f74696e675f70686173655f746f74616c000000000000603d906000191690557f64726166745f71756f72756d5f66697865645f6e756d657261746f7200000000603e906000191690557f64726166745f71756f72756d5f66697865645f64656e6f6d696e61746f720000603f906000191690557f64726166745f71756f72756d5f73666163746f725f6e756d657261746f7200006040906000191690557f64726166745f71756f72756d5f73666163746f725f64656e6f6d696e61746f726041906000191690557f766f74655f71756f72756d5f66697865645f6e756d657261746f7200000000006042906000191690557f766f74655f71756f72756d5f66697865645f64656e6f6d696e61746f720000006043906000191690557f766f74655f71756f72756d5f73666163746f725f6e756d657261746f720000006044906000191690557f766f74655f71756f72756d5f73666163746f725f64656e6f6d696e61746f72006045906000191690557f66696e616c5f7265776172645f73666163746f725f6e756d657261746f7200006046906000191690557f66696e616c5f7265776172645f73666163746f725f64656e6f6d696e61746f726047906000191690557f64726166745f71756f74615f6e756d657261746f7200000000000000000000006048906000191690557f64726166745f71756f74615f64656e6f6d696e61746f720000000000000000006049906000191690557f766f74696e675f71756f74615f6e756d657261746f7200000000000000000000604a906000191690557f766f74696e675f71756f74615f64656e6f6d696e61746f720000000000000000604b906000191690557f6d696e696d616c5f717000000000000000000000000000000000000000000000604c906000191690557f717561727465725f706f696e745f7363616c696e675f666163746f7200000000604d906000191690557f7265705f706f696e745f7363616c696e675f666163746f720000000000000000604e906000191690557f6d696e696d616c5f6d6f645f7170000000000000000000000000000000000000604f906000191690557f6d6f645f71705f7363616c696e675f666163746f7200000000000000000000006050906000191690557f6d6f645f7265705f706f696e745f7363616c696e675f666163746f72000000006051906000191690557f717561727465725f706f696e745f64726166745f766f746500000000000000006052906000191690557f717561727465725f706f696e745f766f746500000000000000000000000000006053906000191690557f717561727465725f706f696e745f696e746572696d5f766f74650000000000006054906000191690557f715f705f6d696c6573746f6e655f636f6d706c6574696f6e00000000000000006055906000191690557f626f6e75735f72657075746174696f6e5f6e756d657261746f720000000000006056906000191690557f626f6e75735f72657075746174696f6e5f64656e6f6d696e61746f72000000006057906000191690557f7370656369616c5f70726f706f73616c5f636f6d6d69745f70686173650000006058906000191690557f7370656369616c5f70726f706f73616c5f70686173655f746f74616c000000006059906000191690557f636f6e6669675f7370656369616c5f71756f74615f6e756d657261746f720000605a906000191690557f636f6e6669675f7370656369616c5f71756f74615f64656e6f6d696e61746f72605b906000191690557f7370656369616c5f71756f72756d5f6e756d657261746f720000000000000000605c906000191690557f7370656369616c5f71756f72756d5f64656e6f6d696e61746f72000000000000605d906000191690557f636f6e6669675f6d61785f72657075746174696f6e5f646564756374696f6e00605e906000191690557f636f6e6669675f70756e6973686d656e745f6e6f745f6c6f636b696e67000000605f906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f6e756d00000000006060906000191690557f636f6e6669675f7265705f7065725f65787472615f71705f64656e00000000006061906000191690557f636f6e6669675f6d61785f6d5f72705f646564756374696f6e000000000000006062906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f6e756d0000006063906000191690557f636f6e6669675f7265705f7065725f65787472615f6d5f71705f64656e0000006064906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f6e756d000000000000000000006065906000191690557f636f6e6669675f6d6f645f706f7274696f6e5f64656e000000000000000000006066906000191690557f636f6e6669675f64726166745f766f74696e675f7068617365000000000000006067906000191690557f636f6e6669675f72705f626f6f73745f7065725f6261646765000000000000006068906000191690557f636f6e6669675f636c61696d696e675f646561646c696e6500000000000000006069906000191690557f636f6e6669675f70726570726f706f73616c5f636f6c6c61746572616c000000606a906000191690557f636f6e6669675f6d61785f66756e64696e675f6e6f6e44696769780000000000606b906000191690557f636f6e6669675f6d61785f6d696c6573746f6e65735f6e6f6e44696769780000606c906000191690557f636f6e6669675f6e6f6e44696769785f70726f706f73616c5f63617000000000606d906000191690557f636f6e6669675f646561645f6475726174696f6e000000000000000000000000606e906000191690557f636f6e6669675f63765f72657075746174696f6e000000000000000000000000606f9060001916905534801561113357600080fd5b5061095e806111436000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100a95780633943380c146101005780633f83acff14610133578063560a25ea146101a457806368533060146101cf5780637d6fed80146101fe5780637f6a26b61461022d578063b1e2b9dd14610258578063d70d93581461029d578063db4ecbc1146102cc575b600080fd5b3480156100b557600080fd5b506100be610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010c57600080fd5b50610115610348565b60405180826000191660001916815260200191505060405180910390f35b34801561013f57600080fd5b50610162600480360381019080803560001916906020019092919050505061034e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b057600080fd5b506101b961042a565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e461043a565b604051808215151515815260200191505060405180910390f35b34801561020a57600080fd5b50610213610466565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610481565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102876004803603810190808035600019169060200190929190505050610491565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610553565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610601565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b505050506040513d602081101561041257600080fd5b81019080805190602001909291905050509050919050565b600061043542610627565b905090565b6000610444610553565b80156104615750610456603854610491565b61045e61042a565b10155b905090565b6000610473603854610491565b61047b61042a565b10905090565b600061048c42610710565b905090565b600061049b610813565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b505050506040513d602081101561053b57600080fd5b81019080805190602001909291905050509050919050565b600061055d610825565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610631610837565b151561063c57600080fd5b610647603954610491565b6106ff610652610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050846108e790919063ffffffff16565b81151561070857fe5b069050919050565b600061071a610837565b151561072557600080fd5b61080c60016107fe610738603954610491565b6107f0610743610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b8101908080519060200190929190505050876108e790919063ffffffff16565b61090090919063ffffffff16565b61091690919063ffffffff16565b9050919050565b6000610820602b5461034e565b905090565b600061083260275461034e565b905090565b600080610842610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d60208110156108cf57600080fd5b81019080805190602001909291905050501415905090565b60008282111515156108f557fe5b818303905092915050565b6000818381151561090d57fe5b04905092915050565b6000818301905082811015151561092957fe5b809050929150505600a165627a7a723058202eef420d98d7888056143e1f2e6265230d06308ea5bafae62b09a8542872516e0029",
  "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304f3bcec146100a95780633943380c146101005780633f83acff14610133578063560a25ea146101a457806368533060146101cf5780637d6fed80146101fe5780637f6a26b61461022d578063b1e2b9dd14610258578063d70d93581461029d578063db4ecbc1146102cc575b600080fd5b3480156100b557600080fd5b506100be610323565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561010c57600080fd5b50610115610348565b60405180826000191660001916815260200191505060405180910390f35b34801561013f57600080fd5b50610162600480360381019080803560001916906020019092919050505061034e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101b057600080fd5b506101b961042a565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e461043a565b604051808215151515815260200191505060405180910390f35b34801561020a57600080fd5b50610213610466565b604051808215151515815260200191505060405180910390f35b34801561023957600080fd5b50610242610481565b6040518082815260200191505060405180910390f35b34801561026457600080fd5b506102876004803603810190808035600019169060200190929190505050610491565b6040518082815260200191505060405180910390f35b3480156102a957600080fd5b506102b2610553565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610601565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633f83acff836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b1580156103e857600080fd5b505af11580156103fc573d6000803e3d6000fd5b505050506040513d602081101561041257600080fd5b81019080805190602001909291905050509050919050565b600061043542610627565b905090565b6000610444610553565b80156104615750610456603854610491565b61045e61042a565b10155b905090565b6000610473603854610491565b61047b61042a565b10905090565b600061048c42610710565b905090565b600061049b610813565b73ffffffffffffffffffffffffffffffffffffffff1663734c1168836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b15801561051157600080fd5b505af1158015610525573d6000803e3d6000fd5b505050506040513d602081101561053b57600080fd5b81019080805190602001909291905050509050919050565b600061055d610825565b73ffffffffffffffffffffffffffffffffffffffff16638bc865fd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b810190808051906020019092919050505015905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610631610837565b151561063c57600080fd5b610647603954610491565b6106ff610652610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b505050506040513d60208110156106df57600080fd5b8101908080519060200190929190505050846108e790919063ffffffff16565b81151561070857fe5b069050919050565b600061071a610837565b151561072557600080fd5b61080c60016107fe610738603954610491565b6107f0610743610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b8101908080519060200190929190505050876108e790919063ffffffff16565b61090090919063ffffffff16565b61091690919063ffffffff16565b9050919050565b6000610820602b5461034e565b905090565b600061083260275461034e565b905090565b600080610842610825565b73ffffffffffffffffffffffffffffffffffffffff1663d9c6bb206040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156108a557600080fd5b505af11580156108b9573d6000803e3d6000fd5b505050506040513d60208110156108cf57600080fd5b81019080805190602001909291905050501415905090565b60008282111515156108f557fe5b818303905092915050565b6000818381151561090d57fe5b04905092915050565b6000818301905082811015151561092957fe5b809050929150505600a165627a7a723058202eef420d98d7888056143e1f2e6265230d06308ea5bafae62b09a8542872516e0029",
  "sourceMap": "556:6962:2:-;;;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;;;;;;;;556:6962:2;8:9:-1;5:2;;;30:1;27;20:12;5:2;556:6962:2;;;;;;;",
  "deployedSourceMap": "556:6962:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;237:23:67;;;;;;;;;;;;;;;;;;;;;;;;;;;264:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;264:18:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2380:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2380:179:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4809:147:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4809:147:2;;;;;;;;;;;;;;;;;;;;;;;1759:239;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1759:239:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1283:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1283:201:2;;;;;;;;;;;;;;;;;;;;;;;;;;;3130:159;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3130:159:2;;;;;;;;;;;;;;;;;;;;;;;7327:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7327:189:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;834:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;834:173:2;;;;;;;;;;;;;;;;;;;;;;;;;;;344:31:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;344:31:67;;;;;;;;;;;;;;;;;;;;;;;;;;;237:23;;;;;;;;;;;;;:::o;264:18::-;;;;:::o;2380:179::-;2470:17;2526:8;;;;;;;;;;;2509:39;;;2549:4;2509:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:45:67;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:45:67;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:45:67;;;;;;;;;;;;;;;;2497:57;;2380:179;;;:::o;4809:147:2:-;4886:17;4931:18;4945:3;4931:13;:18::i;:::-;4919:30;;4809:147;:::o;1759:239::-;1827:17;1887:18;:16;:18::i;:::-;:104;;;;;1947:44;1961:29;;1947:13;:44::i;:::-;1921:22;:20;:22::i;:::-;:70;;1887:104;1860:131;;1759:239;:::o;1283:201::-;1354:20;1433:44;1447:29;;1433:13;:44::i;:::-;1408:22;:20;:22::i;:::-;:69;1390:87;;1283:201;:::o;3130:159::-;3206:22;3261:21;3278:3;3261:16;:21::i;:::-;3244:38;;3130:159;:::o;7327:189::-;7415:20;7466:19;:17;:19::i;:::-;:31;;;7498:10;7466:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7466:43:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7466:43:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7466:43:2;;;;;;;;;;;;;;;;7451:58;;7327:189;;;:::o;834:173::-;907:19;960;:17;:19::i;:::-;:38;;;:40;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;960:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;960:40:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;960:40:2;;;;;;;;;;;;;;;;959:41;942:58;;834:173;:::o;344:31:67:-;;;;;;;;;;;;;:::o;3928:332:2:-;4013:22;4059:26;:24;:26::i;:::-;4051:35;;;;;;;;4215:38;4229:23;;4215:13;:38::i;:::-;4148:52;4158:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4158:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4158:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4158:41:2;;;;;;;;;;;;;;;;4148:5;:9;;:52;;;;:::i;:::-;:105;;;;;;;;4119:134;;3928:332;;;:::o;3435:320::-;3523:14;3561:26;:24;:26::i;:::-;3553:35;;;;;;;;3619:129;3746:1;3619:109;3689:38;3703:23;;3689:13;:38::i;:::-;3619:52;3629:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3629:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3629:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3629:41:2;;;;;;;;;;;;;;;;3619:5;:9;;:52;;;;:::i;:::-;:69;;:109;;;;:::i;:::-;:126;;:129;;;;:::i;:::-;3598:150;;3435:320;;;:::o;5464:198::-;5540:27;5613:41;5626:27;;5613:12;:41::i;:::-;5583:72;;5464:198;:::o;6270:199::-;6346:27;6419:42;6432:28;;6419:12;:42::i;:::-;6389:73;;6270:199;:::o;4409:172::-;4492:11;4573:1;4528:19;:17;:19::i;:::-;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4528:41:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4528:41:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4528:41:2;;;;;;;;;;;;;;;;:46;;4519:55;;4409:172;:::o;1060:116:84:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;665:283::-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;1238:128::-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o",
  "source": "pragma solidity ^0.4.25;\n\nimport \"../service/DaoListingService.sol\";\nimport \"./DaoConstants.sol\";\nimport \"./IdentityCommon.sol\";\nimport \"../storage/DaoConfigsStorage.sol\";\nimport \"../storage/DaoStakeStorage.sol\";\nimport \"../storage/DaoStorage.sol\";\nimport \"../storage/DaoProposalCounterStorage.sol\";\nimport \"../storage/DaoUpgradeStorage.sol\";\nimport \"../storage/DaoSpecialStorage.sol\";\nimport \"../storage/DaoPointsStorage.sol\";\nimport \"../storage/DaoRewardsStorage.sol\";\nimport \"../storage/IntermediateResultsStorage.sol\";\nimport \"../lib/MathHelper.sol\";\n\ncontract DaoCommonMini is IdentityCommon {\n\n    using MathHelper for MathHelper;\n\n    /**\n    @notice Check if the DAO contracts have been replaced by a new set of contracts\n    @return _isNotReplaced true if it is not replaced, false if it has already been replaced\n    */\n    function isDaoNotReplaced()\n        public\n        view\n        returns (bool _isNotReplaced)\n    {\n        _isNotReplaced = !daoUpgradeStorage().isReplacedByNewDao();\n    }\n\n    /**\n    @notice Check if it is currently in the locking phase\n    @dev No governance activities can happen in the locking phase. The locking phase is from t=0 to t=CONFIG_LOCKING_PHASE_DURATION-1\n    @return _isLockingPhase true if it is in the locking phase\n    */\n    function isLockingPhase()\n        public\n        view\n        returns (bool _isLockingPhase)\n    {\n        _isLockingPhase = currentTimeInQuarter() < getUintConfig(CONFIG_LOCKING_PHASE_DURATION);\n    }\n\n    /**\n    @notice Check if it is currently in a main phase.\n    @dev The main phase is where all the governance activities could take plase. If the DAO is replaced, there can never be any more main phase.\n    @return _isMainPhase true if it is in a main phase\n    */\n    function isMainPhase()\n        public\n        view\n        returns (bool _isMainPhase)\n    {\n        _isMainPhase =\n            isDaoNotReplaced() &&\n            currentTimeInQuarter() >= getUintConfig(CONFIG_LOCKING_PHASE_DURATION);\n    }\n\n    /**\n    @notice Check if the calculateGlobalRewardsBeforeNewQuarter function has been done for a certain quarter\n    @dev However, there is no need to run calculateGlobalRewardsBeforeNewQuarter for the first quarter\n    */\n    modifier ifGlobalRewardsSet(uint256 _quarterNumber) {\n        if (_quarterNumber > 1) {\n            require(daoRewardsStorage().readDgxDistributionDay(_quarterNumber) > 0);\n        }\n        _;\n    }\n\n    /**\n    @notice require that it is currently during a phase, which is within _relativePhaseStart and _relativePhaseEnd seconds, after the _startingPoint\n    */\n    function requireInPhase(uint256 _startingPoint, uint256 _relativePhaseStart, uint256 _relativePhaseEnd)\n        internal\n        view\n    {\n        require(_startingPoint > 0, \"start not set\");\n        require(now < _startingPoint.add(_relativePhaseEnd), \"not within phase end\");\n        require(now >= _startingPoint.add(_relativePhaseStart), \"not after phase start\");\n    }\n\n    /**\n    @notice Get the current quarter index\n    @dev Quarter indexes starts from 1\n    @return _quarterNumber the current quarter index\n    */\n    function currentQuarterNumber()\n        public\n        view\n        returns(uint256 _quarterNumber)\n    {\n        _quarterNumber = getQuarterNumber(now);\n    }\n\n    /**\n    @notice Get the quarter index of a timestamp\n    @dev Quarter indexes starts from 1\n    @return _index the quarter index\n    */\n    function getQuarterNumber(uint256 _time)\n        internal\n        view\n        returns (uint256 _index)\n    {\n        require(startOfFirstQuarterIsSet());\n        _index =\n            _time.sub(daoUpgradeStorage().startOfFirstQuarter())\n            .div(getUintConfig(CONFIG_QUARTER_DURATION))\n            .add(1);\n    }\n\n    /**\n    @notice Get the relative time in quarter of a timestamp\n    @dev For example, the timeInQuarter of the first second of any quarter n-th is always 1\n    */\n    function timeInQuarter(uint256 _time)\n        internal\n        view\n        returns (uint256 _timeInQuarter)\n    {\n        require(startOfFirstQuarterIsSet()); // must be already set\n        _timeInQuarter =\n            _time.sub(daoUpgradeStorage().startOfFirstQuarter())\n            % getUintConfig(CONFIG_QUARTER_DURATION);\n    }\n\n    /**\n    @notice Check if the start of first quarter is already set\n    @return _isSet true if start of first quarter is already set\n    */\n    function startOfFirstQuarterIsSet()\n        internal\n        view\n        returns (bool _isSet)\n    {\n        _isSet = daoUpgradeStorage().startOfFirstQuarter() != 0;\n    }\n\n    /**\n    @notice Get the current relative time in the quarter\n    @dev For example: the currentTimeInQuarter of the first second of any quarter is 1\n    @return _currentT the current relative time in the quarter\n    */\n    function currentTimeInQuarter()\n        public\n        view\n        returns (uint256 _currentT)\n    {\n        _currentT = timeInQuarter(now);\n    }\n\n    /**\n    @notice Get the time remaining in the quarter\n    */\n    function getTimeLeftInQuarter(uint256 _time)\n        internal\n        view\n        returns (uint256 _timeLeftInQuarter)\n    {\n        _timeLeftInQuarter = getUintConfig(CONFIG_QUARTER_DURATION).sub(timeInQuarter(_time));\n    }\n\n    function daoListingService()\n        internal\n        view\n        returns (DaoListingService _contract)\n    {\n        _contract = DaoListingService(get_contract(CONTRACT_SERVICE_DAO_LISTING));\n    }\n\n    function daoConfigsStorage()\n        internal\n        view\n        returns (DaoConfigsStorage _contract)\n    {\n        _contract = DaoConfigsStorage(get_contract(CONTRACT_STORAGE_DAO_CONFIG));\n    }\n\n    function daoStakeStorage()\n        internal\n        view\n        returns (DaoStakeStorage _contract)\n    {\n        _contract = DaoStakeStorage(get_contract(CONTRACT_STORAGE_DAO_STAKE));\n    }\n\n    function daoStorage()\n        internal\n        view\n        returns (DaoStorage _contract)\n    {\n        _contract = DaoStorage(get_contract(CONTRACT_STORAGE_DAO));\n    }\n\n    function daoProposalCounterStorage()\n        internal\n        view\n        returns (DaoProposalCounterStorage _contract)\n    {\n        _contract = DaoProposalCounterStorage(get_contract(CONTRACT_STORAGE_DAO_COUNTER));\n    }\n\n    function daoUpgradeStorage()\n        internal\n        view\n        returns (DaoUpgradeStorage _contract)\n    {\n        _contract = DaoUpgradeStorage(get_contract(CONTRACT_STORAGE_DAO_UPGRADE));\n    }\n\n    function daoSpecialStorage()\n        internal\n        view\n        returns (DaoSpecialStorage _contract)\n    {\n        _contract = DaoSpecialStorage(get_contract(CONTRACT_STORAGE_DAO_SPECIAL));\n    }\n\n    function daoPointsStorage()\n        internal\n        view\n        returns (DaoPointsStorage _contract)\n    {\n        _contract = DaoPointsStorage(get_contract(CONTRACT_STORAGE_DAO_POINTS));\n    }\n\n    function daoRewardsStorage()\n        internal\n        view\n        returns (DaoRewardsStorage _contract)\n    {\n        _contract = DaoRewardsStorage(get_contract(CONTRACT_STORAGE_DAO_REWARDS));\n    }\n\n    function intermediateResultsStorage()\n        internal\n        view\n        returns (IntermediateResultsStorage _contract)\n    {\n        _contract = IntermediateResultsStorage(get_contract(CONTRACT_STORAGE_INTERMEDIATE_RESULTS));\n    }\n\n    function getUintConfig(bytes32 _configKey)\n        public\n        view\n        returns (uint256 _configValue)\n    {\n        _configValue = daoConfigsStorage().uintConfigs(_configKey);\n    }\n}\n",
  "sourcePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommonMini.sol",
  "ast": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommonMini.sol",
    "exportedSymbols": {
      "DaoCommonMini": [
        1282
      ]
    },
    "id": 1283,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 886,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/service/DaoListingService.sol",
        "file": "../service/DaoListingService.sol",
        "id": 887,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 12489,
        "src": "26:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "./DaoConstants.sol",
        "id": 888,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 1630,
        "src": "69:28:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/IdentityCommon.sol",
        "file": "./IdentityCommon.sol",
        "id": 889,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 1961,
        "src": "98:30:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoConfigsStorage.sol",
        "file": "../storage/DaoConfigsStorage.sol",
        "id": 890,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 13852,
        "src": "129:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStakeStorage.sol",
        "file": "../storage/DaoStakeStorage.sol",
        "id": 891,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 16027,
        "src": "172:40:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
        "file": "../storage/DaoStorage.sol",
        "id": 892,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 17875,
        "src": "213:35:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoProposalCounterStorage.sol",
        "file": "../storage/DaoProposalCounterStorage.sol",
        "id": 893,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 14546,
        "src": "249:50:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoUpgradeStorage.sol",
        "file": "../storage/DaoUpgradeStorage.sol",
        "id": 894,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 17965,
        "src": "300:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoSpecialStorage.sol",
        "file": "../storage/DaoSpecialStorage.sol",
        "id": 895,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 15600,
        "src": "343:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoPointsStorage.sol",
        "file": "../storage/DaoPointsStorage.sol",
        "id": 896,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 14497,
        "src": "386:41:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoRewardsStorage.sol",
        "file": "../storage/DaoRewardsStorage.sol",
        "id": 897,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 15116,
        "src": "428:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/IntermediateResultsStorage.sol",
        "file": "../storage/IntermediateResultsStorage.sol",
        "id": 898,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 18158,
        "src": "471:51:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/MathHelper.sol",
        "file": "../lib/MathHelper.sol",
        "id": 899,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 8536,
        "src": "523:31:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 900,
              "name": "IdentityCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1960,
              "src": "582:14:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IdentityCommon_$1960",
                "typeString": "contract IdentityCommon"
              }
            },
            "id": 901,
            "nodeType": "InheritanceSpecifier",
            "src": "582:14:2"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1282,
        "linearizedBaseContracts": [
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoCommonMini",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 904,
            "libraryName": {
              "contractScope": null,
              "id": 902,
              "name": "MathHelper",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8535,
              "src": "610:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MathHelper_$8535",
                "typeString": "library MathHelper"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "604:32:2",
            "typeName": {
              "contractScope": null,
              "id": 903,
              "name": "MathHelper",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8535,
              "src": "625:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MathHelper_$8535",
                "typeString": "library MathHelper"
              }
            }
          },
          {
            "body": {
              "id": 917,
              "nodeType": "Block",
              "src": "932:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 909,
                      "name": "_isNotReplaced",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 907,
                      "src": "942:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "959:41:2",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 910,
                              "name": "daoUpgradeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1209,
                              "src": "960:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                "typeString": "function () view returns (contract DaoUpgradeStorage)"
                              }
                            },
                            "id": 911,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "960:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                              "typeString": "contract DaoUpgradeStorage"
                            }
                          },
                          "id": 912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isReplacedByNewDao",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 17886,
                          "src": "960:38:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "960:40:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "942:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 916,
                  "nodeType": "ExpressionStatement",
                  "src": "942:58:2"
                }
              ]
            },
            "documentation": "@notice Check if the DAO contracts have been replaced by a new set of contracts\n@return _isNotReplaced true if it is not replaced, false if it has already been replaced",
            "id": 918,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDaoNotReplaced",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 905,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "859:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 907,
                  "name": "_isNotReplaced",
                  "nodeType": "VariableDeclaration",
                  "scope": 918,
                  "src": "907:19:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 906,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "906:21:2"
            },
            "scope": 1282,
            "src": "834:173:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 932,
              "nodeType": "Block",
              "src": "1380:104:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 923,
                      "name": "_isLockingPhase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 921,
                      "src": "1390:15:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 924,
                          "name": "currentTimeInQuarter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1106,
                          "src": "1408:20:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1408:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 927,
                            "name": "CONFIG_LOCKING_PHASE_DURATION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1463,
                            "src": "1447:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 926,
                          "name": "getUintConfig",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1281,
                          "src": "1433:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) view returns (uint256)"
                          }
                        },
                        "id": 928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1433:44:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1408:69:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1390:87:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 931,
                  "nodeType": "ExpressionStatement",
                  "src": "1390:87:2"
                }
              ]
            },
            "documentation": "@notice Check if it is currently in the locking phase\n@dev No governance activities can happen in the locking phase. The locking phase is from t=0 to t=CONFIG_LOCKING_PHASE_DURATION-1\n@return _isLockingPhase true if it is in the locking phase",
            "id": 933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isLockingPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 919,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1306:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 921,
                  "name": "_isLockingPhase",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "1354:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 920,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1354:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1353:22:2"
            },
            "scope": 1282,
            "src": "1283:201:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 950,
              "nodeType": "Block",
              "src": "1850:148:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 948,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 938,
                      "name": "_isMainPhase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 936,
                      "src": "1860:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 947,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 939,
                          "name": "isDaoNotReplaced",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 918,
                          "src": "1887:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1887:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 946,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 941,
                            "name": "currentTimeInQuarter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1106,
                            "src": "1921:20:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1921:22:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 944,
                              "name": "CONFIG_LOCKING_PHASE_DURATION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1463,
                              "src": "1961:29:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 943,
                            "name": "getUintConfig",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1281,
                            "src": "1947:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view returns (uint256)"
                            }
                          },
                          "id": 945,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1947:44:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1921:70:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "1887:104:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1860:131:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 949,
                  "nodeType": "ExpressionStatement",
                  "src": "1860:131:2"
                }
              ]
            },
            "documentation": "@notice Check if it is currently in a main phase.\n@dev The main phase is where all the governance activities could take plase. If the DAO is replaced, there can never be any more main phase.\n@return _isMainPhase true if it is in a main phase",
            "id": 951,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isMainPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 934,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1779:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 936,
                  "name": "_isMainPhase",
                  "nodeType": "VariableDeclaration",
                  "scope": 951,
                  "src": "1827:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 935,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1827:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1826:19:2"
            },
            "scope": 1282,
            "src": "1759:239:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 971,
              "nodeType": "Block",
              "src": "2283:147:2",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 955,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 953,
                      "src": "2297:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2314:1:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "2297:18:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 969,
                  "nodeType": "IfStatement",
                  "src": "2293:120:2",
                  "trueBody": {
                    "id": 968,
                    "nodeType": "Block",
                    "src": "2317:96:2",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 965,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 962,
                                    "name": "_quarterNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 953,
                                    "src": "2382:14:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 959,
                                      "name": "daoRewardsStorage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1251,
                                      "src": "2339:17:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                                        "typeString": "function () view returns (contract DaoRewardsStorage)"
                                      }
                                    },
                                    "id": 960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2339:19:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                                      "typeString": "contract DaoRewardsStorage"
                                    }
                                  },
                                  "id": 961,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "readDgxDistributionDay",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 15069,
                                  "src": "2339:42:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256) view external returns (uint256)"
                                  }
                                },
                                "id": 963,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2339:58:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 964,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2400:1:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "2339:62:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 958,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              26185,
                              26186
                            ],
                            "referencedDeclaration": 26185,
                            "src": "2331:7:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2331:71:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 967,
                        "nodeType": "ExpressionStatement",
                        "src": "2331:71:2"
                      }
                    ]
                  }
                },
                {
                  "id": 970,
                  "nodeType": "PlaceholderStatement",
                  "src": "2422:1:2"
                }
              ]
            },
            "documentation": "@notice Check if the calculateGlobalRewardsBeforeNewQuarter function has been done for a certain quarter\n@dev However, there is no need to run calculateGlobalRewardsBeforeNewQuarter for the first quarter",
            "id": 972,
            "name": "ifGlobalRewardsSet",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 953,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 972,
                  "src": "2259:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 952,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2259:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2258:24:2"
            },
            "src": "2231:199:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1008,
              "nodeType": "Block",
              "src": "2738:237:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 982,
                          "name": "_startingPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 974,
                          "src": "2756:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2773:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2756:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7374617274206e6f7420736574",
                        "id": 985,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2776:15:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_36aeccc48124481331933072c57d817d924ccaf71aca7a72492d524044e41cd8",
                          "typeString": "literal_string \"start not set\""
                        },
                        "value": "start not set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_36aeccc48124481331933072c57d817d924ccaf71aca7a72492d524044e41cd8",
                          "typeString": "literal_string \"start not set\""
                        }
                      ],
                      "id": 981,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2748:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2748:44:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 987,
                  "nodeType": "ExpressionStatement",
                  "src": "2748:44:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 989,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "2810:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 992,
                              "name": "_relativePhaseEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 978,
                              "src": "2835:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 990,
                              "name": "_startingPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 974,
                              "src": "2816:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 991,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25610,
                            "src": "2816:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2816:37:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2810:43:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f742077697468696e20706861736520656e64",
                        "id": 995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2855:22:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e2d1f49b4ad03b9b59f4dabd85ab66eb8829e326f32d569f8c333de86af834f2",
                          "typeString": "literal_string \"not within phase end\""
                        },
                        "value": "not within phase end"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e2d1f49b4ad03b9b59f4dabd85ab66eb8829e326f32d569f8c333de86af834f2",
                          "typeString": "literal_string \"not within phase end\""
                        }
                      ],
                      "id": 988,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2802:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2802:76:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 997,
                  "nodeType": "ExpressionStatement",
                  "src": "2802:76:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 999,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "2896:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1002,
                              "name": "_relativePhaseStart",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 976,
                              "src": "2922:19:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1000,
                              "name": "_startingPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 974,
                              "src": "2903:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1001,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25610,
                            "src": "2903:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 1003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2903:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2896:46:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f74206166746572207068617365207374617274",
                        "id": 1005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2944:23:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9d00170713baccb1d5e7dfea0229fb2367e64f6047c48b4997012f780dc77a49",
                          "typeString": "literal_string \"not after phase start\""
                        },
                        "value": "not after phase start"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9d00170713baccb1d5e7dfea0229fb2367e64f6047c48b4997012f780dc77a49",
                          "typeString": "literal_string \"not after phase start\""
                        }
                      ],
                      "id": 998,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2888:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2888:80:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1007,
                  "nodeType": "ExpressionStatement",
                  "src": "2888:80:2"
                }
              ]
            },
            "documentation": "@notice require that it is currently during a phase, which is within _relativePhaseStart and _relativePhaseEnd seconds, after the _startingPoint",
            "id": 1009,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "requireInPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 974,
                  "name": "_startingPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2624:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 973,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2624:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 976,
                  "name": "_relativePhaseStart",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2648:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 975,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2648:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 978,
                  "name": "_relativePhaseEnd",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2677:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 977,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2677:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2623:80:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2738:0:2"
            },
            "scope": 1282,
            "src": "2600:375:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1020,
              "nodeType": "Block",
              "src": "3234:55:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1014,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1012,
                      "src": "3244:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1016,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "3278:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1015,
                        "name": "getQuarterNumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1052,
                        "src": "3261:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) view returns (uint256)"
                        }
                      },
                      "id": 1017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3261:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3244:38:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1019,
                  "nodeType": "ExpressionStatement",
                  "src": "3244:38:2"
                }
              ]
            },
            "documentation": "@notice Get the current quarter index\n@dev Quarter indexes starts from 1\n@return _quarterNumber the current quarter index",
            "id": 1021,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "currentQuarterNumber",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1010,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3159:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1012,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 1021,
                  "src": "3206:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1011,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3206:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3205:24:2"
            },
            "scope": 1282,
            "src": "3130:159:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1051,
              "nodeType": "Block",
              "src": "3543:212:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 1029,
                          "name": "startOfFirstQuarterIsSet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1094,
                          "src": "3561:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 1030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3561:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1028,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3553:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3553:35:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1032,
                  "nodeType": "ExpressionStatement",
                  "src": "3553:35:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1033,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1026,
                      "src": "3598:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3746:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1043,
                                  "name": "CONFIG_QUARTER_DURATION",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1466,
                                  "src": "3703:23:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 1042,
                                "name": "getUintConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1281,
                                "src": "3689:13:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                                  "typeString": "function (bytes32) view returns (uint256)"
                                }
                              },
                              "id": 1044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3689:38:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 1036,
                                        "name": "daoUpgradeStorage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1209,
                                        "src": "3629:17:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                          "typeString": "function () view returns (contract DaoUpgradeStorage)"
                                        }
                                      },
                                      "id": 1037,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "3629:19:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                                        "typeString": "contract DaoUpgradeStorage"
                                      }
                                    },
                                    "id": 1038,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "startOfFirstQuarter",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 17884,
                                    "src": "3629:39:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 1039,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3629:41:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1034,
                                  "name": "_time",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1023,
                                  "src": "3619:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1035,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sub",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 25586,
                                "src": "3619:9:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 1040,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3619:52:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1041,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "div",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25566,
                            "src": "3619:69:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 1045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3619:109:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3619:126:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3619:129:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3598:150:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1050,
                  "nodeType": "ExpressionStatement",
                  "src": "3598:150:2"
                }
              ]
            },
            "documentation": "@notice Get the quarter index of a timestamp\n@dev Quarter indexes starts from 1\n@return _index the quarter index",
            "id": 1052,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterNumber",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1023,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1052,
                  "src": "3461:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1022,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3461:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3460:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1026,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 1052,
                  "src": "3523:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3522:16:2"
            },
            "scope": 1282,
            "src": "3435:320:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1078,
              "nodeType": "Block",
              "src": "4041:219:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 1060,
                          "name": "startOfFirstQuarterIsSet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1094,
                          "src": "4059:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 1061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4059:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1059,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4051:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4051:35:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1063,
                  "nodeType": "ExpressionStatement",
                  "src": "4051:35:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1064,
                      "name": "_timeInQuarter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1057,
                      "src": "4119:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 1067,
                                  "name": "daoUpgradeStorage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1209,
                                  "src": "4158:17:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                    "typeString": "function () view returns (contract DaoUpgradeStorage)"
                                  }
                                },
                                "id": 1068,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4158:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                                  "typeString": "contract DaoUpgradeStorage"
                                }
                              },
                              "id": 1069,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "startOfFirstQuarter",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17884,
                              "src": "4158:39:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1070,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4158:41:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1065,
                            "name": "_time",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1054,
                            "src": "4148:5:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1066,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 25586,
                          "src": "4148:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 1071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4148:52:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "%",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1073,
                            "name": "CONFIG_QUARTER_DURATION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1466,
                            "src": "4229:23:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1072,
                          "name": "getUintConfig",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1281,
                          "src": "4215:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) view returns (uint256)"
                          }
                        },
                        "id": 1074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4215:38:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4148:105:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4119:134:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1077,
                  "nodeType": "ExpressionStatement",
                  "src": "4119:134:2"
                }
              ]
            },
            "documentation": "@notice Get the relative time in quarter of a timestamp\n@dev For example, the timeInQuarter of the first second of any quarter n-th is always 1",
            "id": 1079,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "timeInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1054,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "3951:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1053,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3951:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3950:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1057,
                  "name": "_timeInQuarter",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "4013:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1056,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4013:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4012:24:2"
            },
            "scope": 1282,
            "src": "3928:332:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1093,
              "nodeType": "Block",
              "src": "4509:72:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1084,
                      "name": "_isSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1082,
                      "src": "4519:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1085,
                              "name": "daoUpgradeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1209,
                              "src": "4528:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                "typeString": "function () view returns (contract DaoUpgradeStorage)"
                              }
                            },
                            "id": 1086,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4528:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                              "typeString": "contract DaoUpgradeStorage"
                            }
                          },
                          "id": 1087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startOfFirstQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 17884,
                          "src": "4528:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4528:41:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1089,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4573:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "4528:46:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4519:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1092,
                  "nodeType": "ExpressionStatement",
                  "src": "4519:55:2"
                }
              ]
            },
            "documentation": "@notice Check if the start of first quarter is already set\n@return _isSet true if start of first quarter is already set",
            "id": 1094,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "startOfFirstQuarterIsSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1080,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4442:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1082,
                  "name": "_isSet",
                  "nodeType": "VariableDeclaration",
                  "scope": 1094,
                  "src": "4492:11:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1081,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4492:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4491:13:2"
            },
            "scope": 1282,
            "src": "4409:172:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1105,
              "nodeType": "Block",
              "src": "4909:47:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1099,
                      "name": "_currentT",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1097,
                      "src": "4919:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1101,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "4945:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1100,
                        "name": "timeInQuarter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1079,
                        "src": "4931:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) view returns (uint256)"
                        }
                      },
                      "id": 1102,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4931:18:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4919:30:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1104,
                  "nodeType": "ExpressionStatement",
                  "src": "4919:30:2"
                }
              ]
            },
            "documentation": "@notice Get the current relative time in the quarter\n@dev For example: the currentTimeInQuarter of the first second of any quarter is 1\n@return _currentT the current relative time in the quarter",
            "id": 1106,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "currentTimeInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1095,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4838:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1098,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1097,
                  "name": "_currentT",
                  "nodeType": "VariableDeclaration",
                  "scope": 1106,
                  "src": "4886:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1096,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4886:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4885:19:2"
            },
            "scope": 1282,
            "src": "4809:147:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1124,
              "nodeType": "Block",
              "src": "5151:102:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1113,
                      "name": "_timeLeftInQuarter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1111,
                      "src": "5161:18:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "_time",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1108,
                              "src": "5239:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1118,
                            "name": "timeInQuarter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1079,
                            "src": "5225:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view returns (uint256)"
                            }
                          },
                          "id": 1120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5225:20:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1115,
                              "name": "CONFIG_QUARTER_DURATION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1466,
                              "src": "5196:23:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1114,
                            "name": "getUintConfig",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1281,
                            "src": "5182:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view returns (uint256)"
                            }
                          },
                          "id": 1116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5182:38:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25586,
                        "src": "5182:42:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1121,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5182:64:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5161:85:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1123,
                  "nodeType": "ExpressionStatement",
                  "src": "5161:85:2"
                }
              ]
            },
            "documentation": "@notice Get the time remaining in the quarter",
            "id": 1125,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeLeftInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1108,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1125,
                  "src": "5057:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1107,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5057:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5056:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1111,
                  "name": "_timeLeftInQuarter",
                  "nodeType": "VariableDeclaration",
                  "scope": 1125,
                  "src": "5119:26:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1110,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5119:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5118:28:2"
            },
            "scope": 1282,
            "src": "5027:226:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1138,
              "nodeType": "Block",
              "src": "5368:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1130,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1128,
                      "src": "5378:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoListingService_$12488",
                        "typeString": "contract DaoListingService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1133,
                              "name": "CONTRACT_SERVICE_DAO_LISTING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1391,
                              "src": "5421:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1132,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5408:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5408:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1131,
                        "name": "DaoListingService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12488,
                        "src": "5390:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoListingService_$12488_$",
                          "typeString": "type(contract DaoListingService)"
                        }
                      },
                      "id": 1135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5390:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoListingService_$12488",
                        "typeString": "contract DaoListingService"
                      }
                    },
                    "src": "5378:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoListingService_$12488",
                      "typeString": "contract DaoListingService"
                    }
                  },
                  "id": 1137,
                  "nodeType": "ExpressionStatement",
                  "src": "5378:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1139,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoListingService",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1126,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5285:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1128,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1139,
                  "src": "5335:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoListingService_$12488",
                    "typeString": "contract DaoListingService"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1127,
                    "name": "DaoListingService",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12488,
                    "src": "5335:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoListingService_$12488",
                      "typeString": "contract DaoListingService"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5334:29:2"
            },
            "scope": 1282,
            "src": "5259:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1152,
              "nodeType": "Block",
              "src": "5573:89:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1144,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1142,
                      "src": "5583:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                        "typeString": "contract DaoConfigsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1147,
                              "name": "CONTRACT_STORAGE_DAO_CONFIG",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1415,
                              "src": "5626:27:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1146,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5613:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5613:41:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1145,
                        "name": "DaoConfigsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13851,
                        "src": "5595:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoConfigsStorage_$13851_$",
                          "typeString": "type(contract DaoConfigsStorage)"
                        }
                      },
                      "id": 1149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5595:60:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                        "typeString": "contract DaoConfigsStorage"
                      }
                    },
                    "src": "5583:72:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                      "typeString": "contract DaoConfigsStorage"
                    }
                  },
                  "id": 1151,
                  "nodeType": "ExpressionStatement",
                  "src": "5583:72:2"
                }
              ]
            },
            "documentation": null,
            "id": 1153,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoConfigsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5490:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1143,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1142,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1153,
                  "src": "5540:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                    "typeString": "contract DaoConfigsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1141,
                    "name": "DaoConfigsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13851,
                    "src": "5540:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                      "typeString": "contract DaoConfigsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5539:29:2"
            },
            "scope": 1282,
            "src": "5464:198:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1166,
              "nodeType": "Block",
              "src": "5773:86:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1158,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1156,
                      "src": "5783:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1161,
                              "name": "CONTRACT_STORAGE_DAO_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1418,
                              "src": "5824:26:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1160,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5811:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5811:40:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1159,
                        "name": "DaoStakeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16026,
                        "src": "5795:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStakeStorage_$16026_$",
                          "typeString": "type(contract DaoStakeStorage)"
                        }
                      },
                      "id": 1163,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5795:57:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "src": "5783:69:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "id": 1165,
                  "nodeType": "ExpressionStatement",
                  "src": "5783:69:2"
                }
              ]
            },
            "documentation": null,
            "id": 1167,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStakeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1154,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5692:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1157,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1156,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1167,
                  "src": "5742:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                    "typeString": "contract DaoStakeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1155,
                    "name": "DaoStakeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 16026,
                    "src": "5742:15:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5741:27:2"
            },
            "scope": 1282,
            "src": "5668:191:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1180,
              "nodeType": "Block",
              "src": "5960:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1172,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1170,
                      "src": "5970:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1175,
                              "name": "CONTRACT_STORAGE_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1397,
                              "src": "6006:20:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1174,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5993:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1176,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5993:34:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1173,
                        "name": "DaoStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17874,
                        "src": "5982:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStorage_$17874_$",
                          "typeString": "type(contract DaoStorage)"
                        }
                      },
                      "id": 1177,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5982:46:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "src": "5970:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "id": 1179,
                  "nodeType": "ExpressionStatement",
                  "src": "5970:58:2"
                }
              ]
            },
            "documentation": null,
            "id": 1181,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1168,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5884:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1170,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1181,
                  "src": "5934:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStorage_$17874",
                    "typeString": "contract DaoStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1169,
                    "name": "DaoStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17874,
                    "src": "5934:10:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5933:22:2"
            },
            "scope": 1282,
            "src": "5865:170:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1194,
              "nodeType": "Block",
              "src": "6166:98:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1186,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1184,
                      "src": "6176:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                        "typeString": "contract DaoProposalCounterStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1189,
                              "name": "CONTRACT_STORAGE_DAO_COUNTER",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1400,
                              "src": "6227:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1188,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6214:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6214:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1187,
                        "name": "DaoProposalCounterStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14545,
                        "src": "6188:25:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoProposalCounterStorage_$14545_$",
                          "typeString": "type(contract DaoProposalCounterStorage)"
                        }
                      },
                      "id": 1191,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6188:69:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                        "typeString": "contract DaoProposalCounterStorage"
                      }
                    },
                    "src": "6176:81:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                      "typeString": "contract DaoProposalCounterStorage"
                    }
                  },
                  "id": 1193,
                  "nodeType": "ExpressionStatement",
                  "src": "6176:81:2"
                }
              ]
            },
            "documentation": null,
            "id": 1195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoProposalCounterStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1182,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6075:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1184,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1195,
                  "src": "6125:35:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                    "typeString": "contract DaoProposalCounterStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1183,
                    "name": "DaoProposalCounterStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 14545,
                    "src": "6125:25:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                      "typeString": "contract DaoProposalCounterStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6124:37:2"
            },
            "scope": 1282,
            "src": "6041:223:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1208,
              "nodeType": "Block",
              "src": "6379:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1200,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1198,
                      "src": "6389:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                        "typeString": "contract DaoUpgradeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1203,
                              "name": "CONTRACT_STORAGE_DAO_UPGRADE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1403,
                              "src": "6432:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1202,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6419:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1204,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6419:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1201,
                        "name": "DaoUpgradeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17964,
                        "src": "6401:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoUpgradeStorage_$17964_$",
                          "typeString": "type(contract DaoUpgradeStorage)"
                        }
                      },
                      "id": 1205,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6401:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                        "typeString": "contract DaoUpgradeStorage"
                      }
                    },
                    "src": "6389:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                      "typeString": "contract DaoUpgradeStorage"
                    }
                  },
                  "id": 1207,
                  "nodeType": "ExpressionStatement",
                  "src": "6389:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1209,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoUpgradeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6296:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1198,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1209,
                  "src": "6346:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                    "typeString": "contract DaoUpgradeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1197,
                    "name": "DaoUpgradeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17964,
                    "src": "6346:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                      "typeString": "contract DaoUpgradeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6345:29:2"
            },
            "scope": 1282,
            "src": "6270:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1222,
              "nodeType": "Block",
              "src": "6584:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1214,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1212,
                      "src": "6594:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                        "typeString": "contract DaoSpecialStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1217,
                              "name": "CONTRACT_STORAGE_DAO_SPECIAL",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1412,
                              "src": "6637:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1216,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6624:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6624:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1215,
                        "name": "DaoSpecialStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15599,
                        "src": "6606:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoSpecialStorage_$15599_$",
                          "typeString": "type(contract DaoSpecialStorage)"
                        }
                      },
                      "id": 1219,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6606:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                        "typeString": "contract DaoSpecialStorage"
                      }
                    },
                    "src": "6594:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                      "typeString": "contract DaoSpecialStorage"
                    }
                  },
                  "id": 1221,
                  "nodeType": "ExpressionStatement",
                  "src": "6594:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1223,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoSpecialStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1210,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6501:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1212,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1223,
                  "src": "6551:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                    "typeString": "contract DaoSpecialStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1211,
                    "name": "DaoSpecialStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 15599,
                    "src": "6551:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                      "typeString": "contract DaoSpecialStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6550:29:2"
            },
            "scope": 1282,
            "src": "6475:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1236,
              "nodeType": "Block",
              "src": "6787:88:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1228,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1226,
                      "src": "6797:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                        "typeString": "contract DaoPointsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1231,
                              "name": "CONTRACT_STORAGE_DAO_POINTS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "6839:27:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1230,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6826:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6826:41:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1229,
                        "name": "DaoPointsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14496,
                        "src": "6809:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoPointsStorage_$14496_$",
                          "typeString": "type(contract DaoPointsStorage)"
                        }
                      },
                      "id": 1233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6809:59:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                        "typeString": "contract DaoPointsStorage"
                      }
                    },
                    "src": "6797:71:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                      "typeString": "contract DaoPointsStorage"
                    }
                  },
                  "id": 1235,
                  "nodeType": "ExpressionStatement",
                  "src": "6797:71:2"
                }
              ]
            },
            "documentation": null,
            "id": 1237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoPointsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1224,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6705:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1226,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1237,
                  "src": "6755:26:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                    "typeString": "contract DaoPointsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1225,
                    "name": "DaoPointsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 14496,
                    "src": "6755:16:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                      "typeString": "contract DaoPointsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6754:28:2"
            },
            "scope": 1282,
            "src": "6680:195:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1250,
              "nodeType": "Block",
              "src": "6990:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1242,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1240,
                      "src": "7000:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                        "typeString": "contract DaoRewardsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1245,
                              "name": "CONTRACT_STORAGE_DAO_REWARDS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1421,
                              "src": "7043:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1244,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "7030:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7030:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1243,
                        "name": "DaoRewardsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15115,
                        "src": "7012:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoRewardsStorage_$15115_$",
                          "typeString": "type(contract DaoRewardsStorage)"
                        }
                      },
                      "id": 1247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7012:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                        "typeString": "contract DaoRewardsStorage"
                      }
                    },
                    "src": "7000:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                      "typeString": "contract DaoRewardsStorage"
                    }
                  },
                  "id": 1249,
                  "nodeType": "ExpressionStatement",
                  "src": "7000:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1251,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoRewardsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1238,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6907:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1241,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1240,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1251,
                  "src": "6957:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                    "typeString": "contract DaoRewardsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1239,
                    "name": "DaoRewardsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 15115,
                    "src": "6957:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                      "typeString": "contract DaoRewardsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6956:29:2"
            },
            "scope": 1282,
            "src": "6881:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1264,
              "nodeType": "Block",
              "src": "7213:108:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1256,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1254,
                      "src": "7223:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                        "typeString": "contract IntermediateResultsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1259,
                              "name": "CONTRACT_STORAGE_INTERMEDIATE_RESULTS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1427,
                              "src": "7275:37:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1258,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "7262:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7262:51:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1257,
                        "name": "IntermediateResultsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "7235:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IntermediateResultsStorage_$18157_$",
                          "typeString": "type(contract IntermediateResultsStorage)"
                        }
                      },
                      "id": 1261,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7235:79:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                        "typeString": "contract IntermediateResultsStorage"
                      }
                    },
                    "src": "7223:91:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                      "typeString": "contract IntermediateResultsStorage"
                    }
                  },
                  "id": 1263,
                  "nodeType": "ExpressionStatement",
                  "src": "7223:91:2"
                }
              ]
            },
            "documentation": null,
            "id": 1265,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "intermediateResultsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1252,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7121:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1254,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1265,
                  "src": "7171:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                    "typeString": "contract IntermediateResultsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1253,
                    "name": "IntermediateResultsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 18157,
                    "src": "7171:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                      "typeString": "contract IntermediateResultsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7170:38:2"
            },
            "scope": 1282,
            "src": "7086:235:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1280,
              "nodeType": "Block",
              "src": "7441:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1272,
                      "name": "_configValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1270,
                      "src": "7451:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1276,
                          "name": "_configKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1267,
                          "src": "7498:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1273,
                            "name": "daoConfigsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1153,
                            "src": "7466:17:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoConfigsStorage_$13851_$",
                              "typeString": "function () view returns (contract DaoConfigsStorage)"
                            }
                          },
                          "id": 1274,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7466:19:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                            "typeString": "contract DaoConfigsStorage"
                          }
                        },
                        "id": 1275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "uintConfigs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12500,
                        "src": "7466:31:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view external returns (uint256)"
                        }
                      },
                      "id": 1277,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7466:43:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7451:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1279,
                  "nodeType": "ExpressionStatement",
                  "src": "7451:58:2"
                }
              ]
            },
            "documentation": null,
            "id": 1281,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getUintConfig",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1267,
                  "name": "_configKey",
                  "nodeType": "VariableDeclaration",
                  "scope": 1281,
                  "src": "7350:18:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1266,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7350:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7349:20:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1270,
                  "name": "_configValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1281,
                  "src": "7415:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1269,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7415:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7414:22:2"
            },
            "scope": 1282,
            "src": "7327:189:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1283,
        "src": "556:6962:2"
      }
    ],
    "src": "0:7519:2"
  },
  "legacyAST": {
    "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoCommonMini.sol",
    "exportedSymbols": {
      "DaoCommonMini": [
        1282
      ]
    },
    "id": 1283,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 886,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".25"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/service/DaoListingService.sol",
        "file": "../service/DaoListingService.sol",
        "id": 887,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 12489,
        "src": "26:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/DaoConstants.sol",
        "file": "./DaoConstants.sol",
        "id": 888,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 1630,
        "src": "69:28:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/common/IdentityCommon.sol",
        "file": "./IdentityCommon.sol",
        "id": 889,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 1961,
        "src": "98:30:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoConfigsStorage.sol",
        "file": "../storage/DaoConfigsStorage.sol",
        "id": 890,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 13852,
        "src": "129:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStakeStorage.sol",
        "file": "../storage/DaoStakeStorage.sol",
        "id": 891,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 16027,
        "src": "172:40:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoStorage.sol",
        "file": "../storage/DaoStorage.sol",
        "id": 892,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 17875,
        "src": "213:35:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoProposalCounterStorage.sol",
        "file": "../storage/DaoProposalCounterStorage.sol",
        "id": 893,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 14546,
        "src": "249:50:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoUpgradeStorage.sol",
        "file": "../storage/DaoUpgradeStorage.sol",
        "id": 894,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 17965,
        "src": "300:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoSpecialStorage.sol",
        "file": "../storage/DaoSpecialStorage.sol",
        "id": 895,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 15600,
        "src": "343:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoPointsStorage.sol",
        "file": "../storage/DaoPointsStorage.sol",
        "id": 896,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 14497,
        "src": "386:41:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/DaoRewardsStorage.sol",
        "file": "../storage/DaoRewardsStorage.sol",
        "id": 897,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 15116,
        "src": "428:42:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/storage/IntermediateResultsStorage.sol",
        "file": "../storage/IntermediateResultsStorage.sol",
        "id": 898,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 18158,
        "src": "471:51:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/aeufemio/projects/dgx/contracts/dao-contracts/contracts/lib/MathHelper.sol",
        "file": "../lib/MathHelper.sol",
        "id": 899,
        "nodeType": "ImportDirective",
        "scope": 1283,
        "sourceUnit": 8536,
        "src": "523:31:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 900,
              "name": "IdentityCommon",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1960,
              "src": "582:14:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IdentityCommon_$1960",
                "typeString": "contract IdentityCommon"
              }
            },
            "id": 901,
            "nodeType": "InheritanceSpecifier",
            "src": "582:14:2"
          }
        ],
        "contractDependencies": [
          1629,
          1868,
          1960,
          18628
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1282,
        "linearizedBaseContracts": [
          1282,
          1960,
          1868,
          1629,
          18628
        ],
        "name": "DaoCommonMini",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 904,
            "libraryName": {
              "contractScope": null,
              "id": 902,
              "name": "MathHelper",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8535,
              "src": "610:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MathHelper_$8535",
                "typeString": "library MathHelper"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "604:32:2",
            "typeName": {
              "contractScope": null,
              "id": 903,
              "name": "MathHelper",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 8535,
              "src": "625:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_MathHelper_$8535",
                "typeString": "library MathHelper"
              }
            }
          },
          {
            "body": {
              "id": 917,
              "nodeType": "Block",
              "src": "932:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 909,
                      "name": "_isNotReplaced",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 907,
                      "src": "942:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "959:41:2",
                      "subExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 910,
                              "name": "daoUpgradeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1209,
                              "src": "960:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                "typeString": "function () view returns (contract DaoUpgradeStorage)"
                              }
                            },
                            "id": 911,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "960:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                              "typeString": "contract DaoUpgradeStorage"
                            }
                          },
                          "id": 912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "isReplacedByNewDao",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 17886,
                          "src": "960:38:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                            "typeString": "function () view external returns (bool)"
                          }
                        },
                        "id": 913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "960:40:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "942:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 916,
                  "nodeType": "ExpressionStatement",
                  "src": "942:58:2"
                }
              ]
            },
            "documentation": "@notice Check if the DAO contracts have been replaced by a new set of contracts\n@return _isNotReplaced true if it is not replaced, false if it has already been replaced",
            "id": 918,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDaoNotReplaced",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 905,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "859:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 907,
                  "name": "_isNotReplaced",
                  "nodeType": "VariableDeclaration",
                  "scope": 918,
                  "src": "907:19:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 906,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "907:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "906:21:2"
            },
            "scope": 1282,
            "src": "834:173:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 932,
              "nodeType": "Block",
              "src": "1380:104:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 923,
                      "name": "_isLockingPhase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 921,
                      "src": "1390:15:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 924,
                          "name": "currentTimeInQuarter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1106,
                          "src": "1408:20:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                            "typeString": "function () view returns (uint256)"
                          }
                        },
                        "id": 925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1408:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 927,
                            "name": "CONFIG_LOCKING_PHASE_DURATION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1463,
                            "src": "1447:29:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 926,
                          "name": "getUintConfig",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1281,
                          "src": "1433:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) view returns (uint256)"
                          }
                        },
                        "id": 928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1433:44:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1408:69:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1390:87:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 931,
                  "nodeType": "ExpressionStatement",
                  "src": "1390:87:2"
                }
              ]
            },
            "documentation": "@notice Check if it is currently in the locking phase\n@dev No governance activities can happen in the locking phase. The locking phase is from t=0 to t=CONFIG_LOCKING_PHASE_DURATION-1\n@return _isLockingPhase true if it is in the locking phase",
            "id": 933,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isLockingPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 919,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1306:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 921,
                  "name": "_isLockingPhase",
                  "nodeType": "VariableDeclaration",
                  "scope": 933,
                  "src": "1354:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 920,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1354:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1353:22:2"
            },
            "scope": 1282,
            "src": "1283:201:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 950,
              "nodeType": "Block",
              "src": "1850:148:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 948,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 938,
                      "name": "_isMainPhase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 936,
                      "src": "1860:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 947,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 939,
                          "name": "isDaoNotReplaced",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 918,
                          "src": "1887:16:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 940,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1887:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 946,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 941,
                            "name": "currentTimeInQuarter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1106,
                            "src": "1921:20:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                              "typeString": "function () view returns (uint256)"
                            }
                          },
                          "id": 942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1921:22:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 944,
                              "name": "CONFIG_LOCKING_PHASE_DURATION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1463,
                              "src": "1961:29:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 943,
                            "name": "getUintConfig",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1281,
                            "src": "1947:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view returns (uint256)"
                            }
                          },
                          "id": 945,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1947:44:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1921:70:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "1887:104:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1860:131:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 949,
                  "nodeType": "ExpressionStatement",
                  "src": "1860:131:2"
                }
              ]
            },
            "documentation": "@notice Check if it is currently in a main phase.\n@dev The main phase is where all the governance activities could take plase. If the DAO is replaced, there can never be any more main phase.\n@return _isMainPhase true if it is in a main phase",
            "id": 951,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isMainPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 934,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1779:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 937,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 936,
                  "name": "_isMainPhase",
                  "nodeType": "VariableDeclaration",
                  "scope": 951,
                  "src": "1827:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 935,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1827:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1826:19:2"
            },
            "scope": 1282,
            "src": "1759:239:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 971,
              "nodeType": "Block",
              "src": "2283:147:2",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 957,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 955,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 953,
                      "src": "2297:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "31",
                      "id": 956,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2314:1:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "2297:18:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 969,
                  "nodeType": "IfStatement",
                  "src": "2293:120:2",
                  "trueBody": {
                    "id": 968,
                    "nodeType": "Block",
                    "src": "2317:96:2",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 965,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 962,
                                    "name": "_quarterNumber",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 953,
                                    "src": "2382:14:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [],
                                    "expression": {
                                      "argumentTypes": [],
                                      "id": 959,
                                      "name": "daoRewardsStorage",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1251,
                                      "src": "2339:17:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoRewardsStorage_$15115_$",
                                        "typeString": "function () view returns (contract DaoRewardsStorage)"
                                      }
                                    },
                                    "id": 960,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2339:19:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                                      "typeString": "contract DaoRewardsStorage"
                                    }
                                  },
                                  "id": 961,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "readDgxDistributionDay",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 15069,
                                  "src": "2339:42:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256) view external returns (uint256)"
                                  }
                                },
                                "id": 963,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2339:58:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 964,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2400:1:2",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "2339:62:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 958,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              26185,
                              26186
                            ],
                            "referencedDeclaration": 26185,
                            "src": "2331:7:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2331:71:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 967,
                        "nodeType": "ExpressionStatement",
                        "src": "2331:71:2"
                      }
                    ]
                  }
                },
                {
                  "id": 970,
                  "nodeType": "PlaceholderStatement",
                  "src": "2422:1:2"
                }
              ]
            },
            "documentation": "@notice Check if the calculateGlobalRewardsBeforeNewQuarter function has been done for a certain quarter\n@dev However, there is no need to run calculateGlobalRewardsBeforeNewQuarter for the first quarter",
            "id": 972,
            "name": "ifGlobalRewardsSet",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 953,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 972,
                  "src": "2259:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 952,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2259:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2258:24:2"
            },
            "src": "2231:199:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1008,
              "nodeType": "Block",
              "src": "2738:237:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 982,
                          "name": "_startingPoint",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 974,
                          "src": "2756:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 983,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2773:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2756:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7374617274206e6f7420736574",
                        "id": 985,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2776:15:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_36aeccc48124481331933072c57d817d924ccaf71aca7a72492d524044e41cd8",
                          "typeString": "literal_string \"start not set\""
                        },
                        "value": "start not set"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_36aeccc48124481331933072c57d817d924ccaf71aca7a72492d524044e41cd8",
                          "typeString": "literal_string \"start not set\""
                        }
                      ],
                      "id": 981,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2748:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2748:44:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 987,
                  "nodeType": "ExpressionStatement",
                  "src": "2748:44:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 994,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 989,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "2810:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 992,
                              "name": "_relativePhaseEnd",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 978,
                              "src": "2835:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 990,
                              "name": "_startingPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 974,
                              "src": "2816:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 991,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25610,
                            "src": "2816:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 993,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2816:37:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2810:43:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f742077697468696e20706861736520656e64",
                        "id": 995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2855:22:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e2d1f49b4ad03b9b59f4dabd85ab66eb8829e326f32d569f8c333de86af834f2",
                          "typeString": "literal_string \"not within phase end\""
                        },
                        "value": "not within phase end"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e2d1f49b4ad03b9b59f4dabd85ab66eb8829e326f32d569f8c333de86af834f2",
                          "typeString": "literal_string \"not within phase end\""
                        }
                      ],
                      "id": 988,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2802:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 996,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2802:76:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 997,
                  "nodeType": "ExpressionStatement",
                  "src": "2802:76:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 1004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 999,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "2896:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1002,
                              "name": "_relativePhaseStart",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 976,
                              "src": "2922:19:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1000,
                              "name": "_startingPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 974,
                              "src": "2903:14:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1001,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "add",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25610,
                            "src": "2903:18:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 1003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2903:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2896:46:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "6e6f74206166746572207068617365207374617274",
                        "id": 1005,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2944:23:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_9d00170713baccb1d5e7dfea0229fb2367e64f6047c48b4997012f780dc77a49",
                          "typeString": "literal_string \"not after phase start\""
                        },
                        "value": "not after phase start"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_9d00170713baccb1d5e7dfea0229fb2367e64f6047c48b4997012f780dc77a49",
                          "typeString": "literal_string \"not after phase start\""
                        }
                      ],
                      "id": 998,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26186,
                      "src": "2888:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 1006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2888:80:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1007,
                  "nodeType": "ExpressionStatement",
                  "src": "2888:80:2"
                }
              ]
            },
            "documentation": "@notice require that it is currently during a phase, which is within _relativePhaseStart and _relativePhaseEnd seconds, after the _startingPoint",
            "id": 1009,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "requireInPhase",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 979,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 974,
                  "name": "_startingPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2624:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 973,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2624:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 976,
                  "name": "_relativePhaseStart",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2648:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 975,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2648:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 978,
                  "name": "_relativePhaseEnd",
                  "nodeType": "VariableDeclaration",
                  "scope": 1009,
                  "src": "2677:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 977,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2677:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2623:80:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 980,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2738:0:2"
            },
            "scope": 1282,
            "src": "2600:375:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1020,
              "nodeType": "Block",
              "src": "3234:55:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1014,
                      "name": "_quarterNumber",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1012,
                      "src": "3244:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1016,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "3278:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1015,
                        "name": "getQuarterNumber",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1052,
                        "src": "3261:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) view returns (uint256)"
                        }
                      },
                      "id": 1017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3261:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3244:38:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1019,
                  "nodeType": "ExpressionStatement",
                  "src": "3244:38:2"
                }
              ]
            },
            "documentation": "@notice Get the current quarter index\n@dev Quarter indexes starts from 1\n@return _quarterNumber the current quarter index",
            "id": 1021,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "currentQuarterNumber",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1010,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3159:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1012,
                  "name": "_quarterNumber",
                  "nodeType": "VariableDeclaration",
                  "scope": 1021,
                  "src": "3206:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1011,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3206:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3205:24:2"
            },
            "scope": 1282,
            "src": "3130:159:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1051,
              "nodeType": "Block",
              "src": "3543:212:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 1029,
                          "name": "startOfFirstQuarterIsSet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1094,
                          "src": "3561:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 1030,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3561:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1028,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "3553:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3553:35:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1032,
                  "nodeType": "ExpressionStatement",
                  "src": "3553:35:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1049,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1033,
                      "name": "_index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1026,
                      "src": "3598:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 1047,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3746:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 1043,
                                  "name": "CONFIG_QUARTER_DURATION",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1466,
                                  "src": "3703:23:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 1042,
                                "name": "getUintConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1281,
                                "src": "3689:13:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                                  "typeString": "function (bytes32) view returns (uint256)"
                                }
                              },
                              "id": 1044,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3689:38:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "arguments": [],
                                      "expression": {
                                        "argumentTypes": [],
                                        "id": 1036,
                                        "name": "daoUpgradeStorage",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1209,
                                        "src": "3629:17:2",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                          "typeString": "function () view returns (contract DaoUpgradeStorage)"
                                        }
                                      },
                                      "id": 1037,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "3629:19:2",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                                        "typeString": "contract DaoUpgradeStorage"
                                      }
                                    },
                                    "id": 1038,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "startOfFirstQuarter",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 17884,
                                    "src": "3629:39:2",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                      "typeString": "function () view external returns (uint256)"
                                    }
                                  },
                                  "id": 1039,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "3629:41:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1034,
                                  "name": "_time",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1023,
                                  "src": "3619:5:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 1035,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "sub",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 25586,
                                "src": "3619:9:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                  "typeString": "function (uint256,uint256) pure returns (uint256)"
                                }
                              },
                              "id": 1040,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3619:52:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 1041,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "div",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 25566,
                            "src": "3619:69:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                              "typeString": "function (uint256,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 1045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3619:109:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "add",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25610,
                        "src": "3619:126:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3619:129:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3598:150:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1050,
                  "nodeType": "ExpressionStatement",
                  "src": "3598:150:2"
                }
              ]
            },
            "documentation": "@notice Get the quarter index of a timestamp\n@dev Quarter indexes starts from 1\n@return _index the quarter index",
            "id": 1052,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getQuarterNumber",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1023,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1052,
                  "src": "3461:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1022,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3461:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3460:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1026,
                  "name": "_index",
                  "nodeType": "VariableDeclaration",
                  "scope": 1052,
                  "src": "3523:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1025,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3523:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3522:16:2"
            },
            "scope": 1282,
            "src": "3435:320:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1078,
              "nodeType": "Block",
              "src": "4041:219:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 1060,
                          "name": "startOfFirstQuarterIsSet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1094,
                          "src": "4059:24:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 1061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4059:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1059,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        26185,
                        26186
                      ],
                      "referencedDeclaration": 26185,
                      "src": "4051:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4051:35:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1063,
                  "nodeType": "ExpressionStatement",
                  "src": "4051:35:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1064,
                      "name": "_timeInQuarter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1057,
                      "src": "4119:14:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "id": 1067,
                                  "name": "daoUpgradeStorage",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1209,
                                  "src": "4158:17:2",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                    "typeString": "function () view returns (contract DaoUpgradeStorage)"
                                  }
                                },
                                "id": 1068,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4158:19:2",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                                  "typeString": "contract DaoUpgradeStorage"
                                }
                              },
                              "id": 1069,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "startOfFirstQuarter",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17884,
                              "src": "4158:39:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                                "typeString": "function () view external returns (uint256)"
                              }
                            },
                            "id": 1070,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4158:41:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 1065,
                            "name": "_time",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1054,
                            "src": "4148:5:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 1066,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sub",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 25586,
                          "src": "4148:9:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                          }
                        },
                        "id": 1071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4148:52:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "%",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 1073,
                            "name": "CONFIG_QUARTER_DURATION",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1466,
                            "src": "4229:23:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 1072,
                          "name": "getUintConfig",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1281,
                          "src": "4215:13:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                            "typeString": "function (bytes32) view returns (uint256)"
                          }
                        },
                        "id": 1074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4215:38:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4148:105:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4119:134:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1077,
                  "nodeType": "ExpressionStatement",
                  "src": "4119:134:2"
                }
              ]
            },
            "documentation": "@notice Get the relative time in quarter of a timestamp\n@dev For example, the timeInQuarter of the first second of any quarter n-th is always 1",
            "id": 1079,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "timeInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1054,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "3951:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1053,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3951:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3950:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1058,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1057,
                  "name": "_timeInQuarter",
                  "nodeType": "VariableDeclaration",
                  "scope": 1079,
                  "src": "4013:22:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1056,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4013:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4012:24:2"
            },
            "scope": 1282,
            "src": "3928:332:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1093,
              "nodeType": "Block",
              "src": "4509:72:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1091,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1084,
                      "name": "_isSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1082,
                      "src": "4519:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 1090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "id": 1085,
                              "name": "daoUpgradeStorage",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1209,
                              "src": "4528:17:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoUpgradeStorage_$17964_$",
                                "typeString": "function () view returns (contract DaoUpgradeStorage)"
                              }
                            },
                            "id": 1086,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "4528:19:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                              "typeString": "contract DaoUpgradeStorage"
                            }
                          },
                          "id": 1087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "startOfFirstQuarter",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 17884,
                          "src": "4528:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                            "typeString": "function () view external returns (uint256)"
                          }
                        },
                        "id": 1088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4528:41:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 1089,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4573:1:2",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "4528:46:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4519:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1092,
                  "nodeType": "ExpressionStatement",
                  "src": "4519:55:2"
                }
              ]
            },
            "documentation": "@notice Check if the start of first quarter is already set\n@return _isSet true if start of first quarter is already set",
            "id": 1094,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "startOfFirstQuarterIsSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1080,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4442:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1083,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1082,
                  "name": "_isSet",
                  "nodeType": "VariableDeclaration",
                  "scope": 1094,
                  "src": "4492:11:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1081,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4492:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4491:13:2"
            },
            "scope": 1282,
            "src": "4409:172:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1105,
              "nodeType": "Block",
              "src": "4909:47:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1103,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1099,
                      "name": "_currentT",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1097,
                      "src": "4919:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1101,
                          "name": "now",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 26184,
                          "src": "4945:3:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 1100,
                        "name": "timeInQuarter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1079,
                        "src": "4931:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) view returns (uint256)"
                        }
                      },
                      "id": 1102,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4931:18:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4919:30:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1104,
                  "nodeType": "ExpressionStatement",
                  "src": "4919:30:2"
                }
              ]
            },
            "documentation": "@notice Get the current relative time in the quarter\n@dev For example: the currentTimeInQuarter of the first second of any quarter is 1\n@return _currentT the current relative time in the quarter",
            "id": 1106,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "currentTimeInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1095,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4838:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1098,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1097,
                  "name": "_currentT",
                  "nodeType": "VariableDeclaration",
                  "scope": 1106,
                  "src": "4886:17:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1096,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4886:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4885:19:2"
            },
            "scope": 1282,
            "src": "4809:147:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1124,
              "nodeType": "Block",
              "src": "5151:102:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1122,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1113,
                      "name": "_timeLeftInQuarter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1111,
                      "src": "5161:18:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1119,
                              "name": "_time",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1108,
                              "src": "5239:5:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 1118,
                            "name": "timeInQuarter",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1079,
                            "src": "5225:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view returns (uint256)"
                            }
                          },
                          "id": 1120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5225:20:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1115,
                              "name": "CONFIG_QUARTER_DURATION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1466,
                              "src": "5196:23:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1114,
                            "name": "getUintConfig",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1281,
                            "src": "5182:13:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$",
                              "typeString": "function (bytes32) view returns (uint256)"
                            }
                          },
                          "id": 1116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5182:38:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 1117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sub",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 25586,
                        "src": "5182:42:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                          "typeString": "function (uint256,uint256) pure returns (uint256)"
                        }
                      },
                      "id": 1121,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5182:64:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5161:85:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1123,
                  "nodeType": "ExpressionStatement",
                  "src": "5161:85:2"
                }
              ]
            },
            "documentation": "@notice Get the time remaining in the quarter",
            "id": 1125,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getTimeLeftInQuarter",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1108,
                  "name": "_time",
                  "nodeType": "VariableDeclaration",
                  "scope": 1125,
                  "src": "5057:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1107,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5057:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5056:15:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1111,
                  "name": "_timeLeftInQuarter",
                  "nodeType": "VariableDeclaration",
                  "scope": 1125,
                  "src": "5119:26:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1110,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5119:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5118:28:2"
            },
            "scope": 1282,
            "src": "5027:226:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1138,
              "nodeType": "Block",
              "src": "5368:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1130,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1128,
                      "src": "5378:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoListingService_$12488",
                        "typeString": "contract DaoListingService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1133,
                              "name": "CONTRACT_SERVICE_DAO_LISTING",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1391,
                              "src": "5421:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1132,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5408:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5408:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1131,
                        "name": "DaoListingService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12488,
                        "src": "5390:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoListingService_$12488_$",
                          "typeString": "type(contract DaoListingService)"
                        }
                      },
                      "id": 1135,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5390:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoListingService_$12488",
                        "typeString": "contract DaoListingService"
                      }
                    },
                    "src": "5378:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoListingService_$12488",
                      "typeString": "contract DaoListingService"
                    }
                  },
                  "id": 1137,
                  "nodeType": "ExpressionStatement",
                  "src": "5378:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1139,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoListingService",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1126,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5285:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1128,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1139,
                  "src": "5335:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoListingService_$12488",
                    "typeString": "contract DaoListingService"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1127,
                    "name": "DaoListingService",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 12488,
                    "src": "5335:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoListingService_$12488",
                      "typeString": "contract DaoListingService"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5334:29:2"
            },
            "scope": 1282,
            "src": "5259:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1152,
              "nodeType": "Block",
              "src": "5573:89:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1144,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1142,
                      "src": "5583:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                        "typeString": "contract DaoConfigsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1147,
                              "name": "CONTRACT_STORAGE_DAO_CONFIG",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1415,
                              "src": "5626:27:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1146,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5613:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5613:41:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1145,
                        "name": "DaoConfigsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 13851,
                        "src": "5595:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoConfigsStorage_$13851_$",
                          "typeString": "type(contract DaoConfigsStorage)"
                        }
                      },
                      "id": 1149,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5595:60:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                        "typeString": "contract DaoConfigsStorage"
                      }
                    },
                    "src": "5583:72:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                      "typeString": "contract DaoConfigsStorage"
                    }
                  },
                  "id": 1151,
                  "nodeType": "ExpressionStatement",
                  "src": "5583:72:2"
                }
              ]
            },
            "documentation": null,
            "id": 1153,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoConfigsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1140,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5490:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1143,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1142,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1153,
                  "src": "5540:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                    "typeString": "contract DaoConfigsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1141,
                    "name": "DaoConfigsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13851,
                    "src": "5540:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                      "typeString": "contract DaoConfigsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5539:29:2"
            },
            "scope": 1282,
            "src": "5464:198:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1166,
              "nodeType": "Block",
              "src": "5773:86:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1158,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1156,
                      "src": "5783:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1161,
                              "name": "CONTRACT_STORAGE_DAO_STAKE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1418,
                              "src": "5824:26:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1160,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5811:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1162,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5811:40:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1159,
                        "name": "DaoStakeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 16026,
                        "src": "5795:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStakeStorage_$16026_$",
                          "typeString": "type(contract DaoStakeStorage)"
                        }
                      },
                      "id": 1163,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5795:57:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                        "typeString": "contract DaoStakeStorage"
                      }
                    },
                    "src": "5783:69:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "id": 1165,
                  "nodeType": "ExpressionStatement",
                  "src": "5783:69:2"
                }
              ]
            },
            "documentation": null,
            "id": 1167,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStakeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1154,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5692:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1157,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1156,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1167,
                  "src": "5742:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                    "typeString": "contract DaoStakeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1155,
                    "name": "DaoStakeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 16026,
                    "src": "5742:15:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStakeStorage_$16026",
                      "typeString": "contract DaoStakeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5741:27:2"
            },
            "scope": 1282,
            "src": "5668:191:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1180,
              "nodeType": "Block",
              "src": "5960:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1178,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1172,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1170,
                      "src": "5970:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1175,
                              "name": "CONTRACT_STORAGE_DAO",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1397,
                              "src": "6006:20:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1174,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "5993:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1176,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5993:34:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1173,
                        "name": "DaoStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17874,
                        "src": "5982:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoStorage_$17874_$",
                          "typeString": "type(contract DaoStorage)"
                        }
                      },
                      "id": 1177,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5982:46:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoStorage_$17874",
                        "typeString": "contract DaoStorage"
                      }
                    },
                    "src": "5970:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "id": 1179,
                  "nodeType": "ExpressionStatement",
                  "src": "5970:58:2"
                }
              ]
            },
            "documentation": null,
            "id": 1181,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1168,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5884:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1170,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1181,
                  "src": "5934:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoStorage_$17874",
                    "typeString": "contract DaoStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1169,
                    "name": "DaoStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17874,
                    "src": "5934:10:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoStorage_$17874",
                      "typeString": "contract DaoStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5933:22:2"
            },
            "scope": 1282,
            "src": "5865:170:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1194,
              "nodeType": "Block",
              "src": "6166:98:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1186,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1184,
                      "src": "6176:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                        "typeString": "contract DaoProposalCounterStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1189,
                              "name": "CONTRACT_STORAGE_DAO_COUNTER",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1400,
                              "src": "6227:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1188,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6214:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1190,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6214:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1187,
                        "name": "DaoProposalCounterStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14545,
                        "src": "6188:25:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoProposalCounterStorage_$14545_$",
                          "typeString": "type(contract DaoProposalCounterStorage)"
                        }
                      },
                      "id": 1191,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6188:69:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                        "typeString": "contract DaoProposalCounterStorage"
                      }
                    },
                    "src": "6176:81:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                      "typeString": "contract DaoProposalCounterStorage"
                    }
                  },
                  "id": 1193,
                  "nodeType": "ExpressionStatement",
                  "src": "6176:81:2"
                }
              ]
            },
            "documentation": null,
            "id": 1195,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoProposalCounterStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1182,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6075:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1184,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1195,
                  "src": "6125:35:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                    "typeString": "contract DaoProposalCounterStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1183,
                    "name": "DaoProposalCounterStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 14545,
                    "src": "6125:25:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoProposalCounterStorage_$14545",
                      "typeString": "contract DaoProposalCounterStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6124:37:2"
            },
            "scope": 1282,
            "src": "6041:223:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1208,
              "nodeType": "Block",
              "src": "6379:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1200,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1198,
                      "src": "6389:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                        "typeString": "contract DaoUpgradeStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1203,
                              "name": "CONTRACT_STORAGE_DAO_UPGRADE",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1403,
                              "src": "6432:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1202,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6419:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1204,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6419:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1201,
                        "name": "DaoUpgradeStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17964,
                        "src": "6401:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoUpgradeStorage_$17964_$",
                          "typeString": "type(contract DaoUpgradeStorage)"
                        }
                      },
                      "id": 1205,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6401:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                        "typeString": "contract DaoUpgradeStorage"
                      }
                    },
                    "src": "6389:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                      "typeString": "contract DaoUpgradeStorage"
                    }
                  },
                  "id": 1207,
                  "nodeType": "ExpressionStatement",
                  "src": "6389:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1209,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoUpgradeStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6296:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1198,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1209,
                  "src": "6346:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                    "typeString": "contract DaoUpgradeStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1197,
                    "name": "DaoUpgradeStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 17964,
                    "src": "6346:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoUpgradeStorage_$17964",
                      "typeString": "contract DaoUpgradeStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6345:29:2"
            },
            "scope": 1282,
            "src": "6270:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1222,
              "nodeType": "Block",
              "src": "6584:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1220,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1214,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1212,
                      "src": "6594:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                        "typeString": "contract DaoSpecialStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1217,
                              "name": "CONTRACT_STORAGE_DAO_SPECIAL",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1412,
                              "src": "6637:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1216,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6624:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6624:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1215,
                        "name": "DaoSpecialStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15599,
                        "src": "6606:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoSpecialStorage_$15599_$",
                          "typeString": "type(contract DaoSpecialStorage)"
                        }
                      },
                      "id": 1219,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6606:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                        "typeString": "contract DaoSpecialStorage"
                      }
                    },
                    "src": "6594:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                      "typeString": "contract DaoSpecialStorage"
                    }
                  },
                  "id": 1221,
                  "nodeType": "ExpressionStatement",
                  "src": "6594:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1223,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoSpecialStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1210,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6501:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1212,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1223,
                  "src": "6551:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                    "typeString": "contract DaoSpecialStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1211,
                    "name": "DaoSpecialStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 15599,
                    "src": "6551:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoSpecialStorage_$15599",
                      "typeString": "contract DaoSpecialStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6550:29:2"
            },
            "scope": 1282,
            "src": "6475:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1236,
              "nodeType": "Block",
              "src": "6787:88:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1228,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1226,
                      "src": "6797:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                        "typeString": "contract DaoPointsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1231,
                              "name": "CONTRACT_STORAGE_DAO_POINTS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1409,
                              "src": "6839:27:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1230,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "6826:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1232,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6826:41:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1229,
                        "name": "DaoPointsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 14496,
                        "src": "6809:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoPointsStorage_$14496_$",
                          "typeString": "type(contract DaoPointsStorage)"
                        }
                      },
                      "id": 1233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6809:59:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                        "typeString": "contract DaoPointsStorage"
                      }
                    },
                    "src": "6797:71:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                      "typeString": "contract DaoPointsStorage"
                    }
                  },
                  "id": 1235,
                  "nodeType": "ExpressionStatement",
                  "src": "6797:71:2"
                }
              ]
            },
            "documentation": null,
            "id": 1237,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoPointsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1224,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6705:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1226,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1237,
                  "src": "6755:26:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                    "typeString": "contract DaoPointsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1225,
                    "name": "DaoPointsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 14496,
                    "src": "6755:16:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoPointsStorage_$14496",
                      "typeString": "contract DaoPointsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6754:28:2"
            },
            "scope": 1282,
            "src": "6680:195:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1250,
              "nodeType": "Block",
              "src": "6990:90:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1248,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1242,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1240,
                      "src": "7000:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                        "typeString": "contract DaoRewardsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1245,
                              "name": "CONTRACT_STORAGE_DAO_REWARDS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1421,
                              "src": "7043:28:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1244,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "7030:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1246,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7030:42:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1243,
                        "name": "DaoRewardsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 15115,
                        "src": "7012:17:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_DaoRewardsStorage_$15115_$",
                          "typeString": "type(contract DaoRewardsStorage)"
                        }
                      },
                      "id": 1247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7012:61:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                        "typeString": "contract DaoRewardsStorage"
                      }
                    },
                    "src": "7000:73:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                      "typeString": "contract DaoRewardsStorage"
                    }
                  },
                  "id": 1249,
                  "nodeType": "ExpressionStatement",
                  "src": "7000:73:2"
                }
              ]
            },
            "documentation": null,
            "id": 1251,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "daoRewardsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1238,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6907:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1241,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1240,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1251,
                  "src": "6957:27:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                    "typeString": "contract DaoRewardsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1239,
                    "name": "DaoRewardsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 15115,
                    "src": "6957:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_DaoRewardsStorage_$15115",
                      "typeString": "contract DaoRewardsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6956:29:2"
            },
            "scope": 1282,
            "src": "6881:199:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1264,
              "nodeType": "Block",
              "src": "7213:108:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1262,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1256,
                      "name": "_contract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1254,
                      "src": "7223:9:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                        "typeString": "contract IntermediateResultsStorage"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 1259,
                              "name": "CONTRACT_STORAGE_INTERMEDIATE_RESULTS",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1427,
                              "src": "7275:37:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "id": 1258,
                            "name": "get_contract",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18627,
                            "src": "7262:12:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 1260,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7262:51:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 1257,
                        "name": "IntermediateResultsStorage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 18157,
                        "src": "7235:26:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IntermediateResultsStorage_$18157_$",
                          "typeString": "type(contract IntermediateResultsStorage)"
                        }
                      },
                      "id": 1261,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7235:79:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                        "typeString": "contract IntermediateResultsStorage"
                      }
                    },
                    "src": "7223:91:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                      "typeString": "contract IntermediateResultsStorage"
                    }
                  },
                  "id": 1263,
                  "nodeType": "ExpressionStatement",
                  "src": "7223:91:2"
                }
              ]
            },
            "documentation": null,
            "id": 1265,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "intermediateResultsStorage",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1252,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7121:2:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1254,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 1265,
                  "src": "7171:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                    "typeString": "contract IntermediateResultsStorage"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1253,
                    "name": "IntermediateResultsStorage",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 18157,
                    "src": "7171:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IntermediateResultsStorage_$18157",
                      "typeString": "contract IntermediateResultsStorage"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7170:38:2"
            },
            "scope": 1282,
            "src": "7086:235:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1280,
              "nodeType": "Block",
              "src": "7441:75:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 1272,
                      "name": "_configValue",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1270,
                      "src": "7451:12:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 1276,
                          "name": "_configKey",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1267,
                          "src": "7498:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 1273,
                            "name": "daoConfigsStorage",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1153,
                            "src": "7466:17:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_DaoConfigsStorage_$13851_$",
                              "typeString": "function () view returns (contract DaoConfigsStorage)"
                            }
                          },
                          "id": 1274,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7466:19:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_DaoConfigsStorage_$13851",
                            "typeString": "contract DaoConfigsStorage"
                          }
                        },
                        "id": 1275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "uintConfigs",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 12500,
                        "src": "7466:31:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_uint256_$",
                          "typeString": "function (bytes32) view external returns (uint256)"
                        }
                      },
                      "id": 1277,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7466:43:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7451:58:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 1279,
                  "nodeType": "ExpressionStatement",
                  "src": "7451:58:2"
                }
              ]
            },
            "documentation": null,
            "id": 1281,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getUintConfig",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1267,
                  "name": "_configKey",
                  "nodeType": "VariableDeclaration",
                  "scope": 1281,
                  "src": "7350:18:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1266,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7350:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7349:20:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 1271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1270,
                  "name": "_configValue",
                  "nodeType": "VariableDeclaration",
                  "scope": 1281,
                  "src": "7415:20:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1269,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7415:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7414:22:2"
            },
            "scope": 1282,
            "src": "7327:189:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1283,
        "src": "556:6962:2"
      }
    ],
    "src": "0:7519:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2020-03-13T02:38:46.040Z"
}