public final synchronized void update(int paramInt) {
		if (!this.init || (this.progress < 0)) {
			return;
		}
		if (paramInt < 0) {
			this.max -= paramInt;
			this.gui.setProgressSize(this.max);
			update(-paramInt);
			return;
		}
		this.gui.setProgress(this.progress += paramInt);
		if (this.max > 0) {
			final int digits = (int) Math.log10(this.max) + 1;
			System.out.printf(String.format("\r%%%dd / %%%dd (%%6.2f%%%%)",
					digits, digits), this.progress, this.max,
					(this.progress * 100.0) / this.max);
		}
	}