public final static void main(String[] args) {
		for (int i = 0; i < 20; i++) {
			try {
				Control.current = new Instance(args);
				current.run();
			} catch (FatalError e) {
				Output.println(e.getMessage() + "\n", 0);
				System.exit(1);
			} catch (RestartLater e) {
				if (e.getMessage() == null || e.getMessage().equals("")) {
					i--;
					Output
							.println(
									"Es ist ein Fehler aufgetreten, der nicht zugeordnet werden konnte.\n"
											+ "Versuchen Sie den Fehler direkt über die Webseite zu finden. "
											+ "Vermutlich hängt der Spieler irgendwo fest, wann der Bot nicht erkennen kann. "
											+ "Oftmals scheitert es, wenn man manuell in den Ablauf eingegriffen hat oder wenn "
											+ "Account beim Starten nicht im Ausgangszustand ist.\n"
											+ "Der Bot wird sich in 3 min neu starten.",
									0);

					if (Config.getDebug()) {
						e.printStackTrace();
					}

					Control.sleep(3 * 600);
				} else {
					Output.println("Geplanter Neustart: " + e.getMessage(), 2);
					Control.current.logout();
				}
			} catch (Exception e) {
				e.printStackTrace();
				
				if (current.lastResponse != null) {
					SimpleFile.write("debug-info.html", current.lastResponse);
					Output.println("Bitte den Fehlerbericht »debug-info.html« melden", Output.ERROR);
				}
				
				Control.sleep(6000, Output.ERROR);
			}
		}
	}