function withdraw() notOnPause public {

		if (block.timestamp >= x.c(msg.sender) + 10 minutes) {
			uint _payout = (x.d(msg.sender).mul(x.getInterest(msg.sender)).div(10000)).mul(block.timestamp.sub(x.c(msg.sender))).div(1 days);
			x.updateCheckpoint(msg.sender);
		}

		if (_payout > 0) {

			if (_payout > address(this).balance) {
				nextWave();
				return;
			}

			msg.sender.transfer(_payout);
			emit LogIncome(msg.sender, _payout, "withdrawn");
		}
	}