func: constructor (uint256 _openingTimePeriodOne, uint256 _closingTimePeriodOne, uint256 _openingTimePeriodTwo, uint256 _closingTimePeriodTwo, uint256 _bonusDeliverTime,
          uint256 _rate, uint256 _bonusRatePrivateSale, uint256 _bonusRatePeriodOne, uint256 _bonusRatePeriodTwo, 
          address _wallet, ERC20 _token, uint256 _decimals, uint256 _tokenUnsold, uint256 _bonusUnsold) public {
          require(_wallet != address(0));
          require(_token != address(0));
          require(_openingTimePeriodOne >= block.timestamp);
          require(_closingTimePeriodOne >= _openingTimePeriodOne);
          require(_openingTimePeriodTwo >= _closingTimePeriodOne);
          require(_closingTimePeriodTwo >= _openingTimePeriodTwo);
  
          wallet = _wallet;
          token = _token;
          openingTimePeriodOne = _openingTimePeriodOne;
          closingTimePeriodOne = _closingTimePeriodOne;
          openingTimePeriodTwo = _openingTimePeriodTwo;
          closingTimePeriodTwo = _closingTimePeriodTwo;
          bonusDeliverTime = _bonusDeliverTime;
          rate = _rate;
          bonusRatePrivateSale = _bonusRatePrivateSale;
          bonusRatePeriodOne = _bonusRatePeriodOne;
          bonusRatePeriodTwo = _bonusRatePeriodTwo;
          tokenUnsold = _tokenUnsold;
          bonusUnsold = _bonusUnsold;
          decimals = _decimals;
      }