function buyPreIcoTokens(uint256 _weiAmount) internal returns(uint256){
        uint8 percents = 0;

        if(block.timestamp - dateStart <= 10 days){
            percents = 20;
        }

        if(block.timestamp - dateStart <= 8 days){
            percents = 40;
        }

        if(block.timestamp - dateStart <= 6 days){
            percents = 60;
        }

        if(block.timestamp - dateStart <= 4 days){
            percents = 80;
        }

        if(block.timestamp - dateStart <= 2 days){  
            percents = 100;
        }

        uint256 tokens = _weiAmount.mul(rateBase).mul(2);

        if(percents > 0){
            tokens = tokens.add(tokens.mul(percents).div(100));    
        }

        require(totalSupply.add(tokens) <= maxPreIcoTokens);

        return tokens;

    }