// Path: happycoding/src/main/java/happy/coding/io/Logs.java
// public class Logs {
// 	private final static Logger logger = LoggerFactory.getLogger(Logs.class);
// 	private static String conf = null;
// 
// 	// default configuration
// 	static {
// 		if ((conf = FileIO.getResource("log4j.properties")) != null)
// 			config(conf, false);
// 		else if ((conf = FileIO.getResource("log4j.xml")) != null)
// 			config(conf, true);
// 	}
// 
// 	public static Logger config(String config, boolean isXml) {
// 		if (isXml)
// 			DOMConfigurator.configure(config);
// 		else
// 			PropertyConfigurator.configure(config);
// 
// 		return logger;
// 	}
// 
// 	public static void debug(double data) {
// 		logger.debug(Strings.toString(data));
// 	}
// 
// 	public static void debug(Object msg) {
// 		logger.debug(msg.toString());
// 	}
// 
// 	public static void debug(String msg) {
// 		logger.debug(msg);
// 	}
// 
// 	public static void debug(String format, Object arg) {
// 		logger.debug(format, arg);
// 	}
// 
// 	public static void debug(String format, Object... args) {
// 		logger.debug(format, args);
// 	}
// 
// 	public static void debug() {
// 		debug("");
// 	}
// 
// 	public static void error() {
// 		error("");
// 	}
// 
// 	public static void warn() {
// 		warn("");
// 	}
// 
// 	public static void info() {
// 		info("");
// 	}
// 
// 	public static void info(double data) {
// 		logger.info(Strings.toString(data));
// 	}
// 
// 	public static void info(Object msg) {
// 		if (msg == null)
// 			logger.info("");
// 		else
// 			logger.info(msg.toString());
// 	}
// 
// 	public static void info(String format, Object arg) {
// 		logger.info(format, arg);
// 	}
// 
// 	public static void info(String format, Object... args) {
// 		logger.info(format, args);
// 	}
// 
// 	public static void error(double data) {
// 		logger.error(Strings.toString(data));
// 	}
// 
// 	public static void error(Object msg) {
// 		logger.error(msg.toString());
// 	}
// 
// 	public static void warn(String msg) {
// 		logger.warn(msg);
// 	}
// 
// 	public static void warn(String format, Object arg) {
// 		logger.warn(format, arg);
// 	}
// 
// 	public static void warn(String format, Object... args) {
// 		logger.warn(format, args);
// 	}
// 
// 	public static void warn(double data) {
// 		logger.warn(Strings.toString(data));
// 	}
// 
// 	public static void warn(Object msg) {
// 		logger.warn(msg.toString());
// 	}
// 
// 	public static void error(String msg) {
// 		logger.error(msg);
// 	}
// 
// 	public static void error(String format, Object arg) {
// 		logger.error(format, arg);
// 	}
// 
// 	public static void error(String format, Object... args) {
// 		logger.error(format, args);
// 	}
// 
// 	public static void off() {
// 		org.apache.log4j.Logger.getRootLogger().setLevel(Level.OFF);
// 	}
// 
// 	public static void on() {
// 		org.apache.log4j.Logger.getRootLogger().setLevel(Level.DEBUG);
// 	}
// 
// 	@Test
// 	public void example() {
// 		String[] msgs = new String[] { "Section content: ", "@author guoguibing" };
// 
// 		debug(msgs);
// 	}
// 
// }


import happy.coding.io.Logs;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.imageio.ImageIO;
	public static String getDesktop() {
		if (desktopPath == null)
			desktopPath = USER_DIRECTORY + FILE_SEPARATOR + "Desktop" + FILE_SEPARATOR;
		return desktopPath;
	}

	public static String getIP() {
		InetAddress ip = null;
		try {
			ip = InetAddress.getLocalHost();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
		return ip.getHostName() + "@" + ip.getHostAddress();
	}

	public static OS getOs() {
		if (os == null) {
			for (OS m : OS.values()) {
				if (OPERATING_SYSTEM.toLowerCase().contains(m.name().toLowerCase())) {
					os = m;
					break;
				}
			}
		}
		return os;
	}

	public static void pause() {
		try {
// Path: happycoding/src/main/java/happy/coding/io/Logs.java
// public class Logs {
// 	private final static Logger logger = LoggerFactory.getLogger(Logs.class);
// 	private static String conf = null;
// 
// 	// default configuration
// 	static {
// 		if ((conf = FileIO.getResource("log4j.properties")) != null)
// 			config(conf, false);
// 		else if ((conf = FileIO.getResource("log4j.xml")) != null)
// 			config(conf, true);
// 	}
// 
// 	public static Logger config(String config, boolean isXml) {
// 		if (isXml)
// 			DOMConfigurator.configure(config);
// 		else
// 			PropertyConfigurator.configure(config);
// 
// 		return logger;
// 	}
// 
// 	public static void debug(double data) {
// 		logger.debug(Strings.toString(data));
// 	}
// 
// 	public static void debug(Object msg) {
// 		logger.debug(msg.toString());
// 	}
// 
// 	public static void debug(String msg) {
// 		logger.debug(msg);
// 	}
// 
// 	public static void debug(String format, Object arg) {
// 		logger.debug(format, arg);
// 	}
// 
// 	public static void debug(String format, Object... args) {
// 		logger.debug(format, args);
// 	}
// 
// 	public static void debug() {
// 		debug("");
// 	}
// 
// 	public static void error() {
// 		error("");
// 	}
// 
// 	public static void warn() {
// 		warn("");
// 	}
// 
// 	public static void info() {
// 		info("");
// 	}
// 
// 	public static void info(double data) {
// 		logger.info(Strings.toString(data));
// 	}
// 
// 	public static void info(Object msg) {
// 		if (msg == null)
// 			logger.info("");
// 		else
// 			logger.info(msg.toString());
// 	}
// 
// 	public static void info(String format, Object arg) {
// 		logger.info(format, arg);
// 	}
// 
// 	public static void info(String format, Object... args) {
// 		logger.info(format, args);
// 	}
// 
// 	public static void error(double data) {
// 		logger.error(Strings.toString(data));
// 	}
// 
// 	public static void error(Object msg) {
// 		logger.error(msg.toString());
// 	}
// 
// 	public static void warn(String msg) {
// 		logger.warn(msg);
// 	}
// 
// 	public static void warn(String format, Object arg) {
// 		logger.warn(format, arg);
// 	}
// 
// 	public static void warn(String format, Object... args) {
// 		logger.warn(format, args);
// 	}
// 
// 	public static void warn(double data) {
// 		logger.warn(Strings.toString(data));
// 	}
// 
// 	public static void warn(Object msg) {
// 		logger.warn(msg.toString());
// 	}
// 
// 	public static void error(String msg) {
// 		logger.error(msg);
// 	}
// 
// 	public static void error(String format, Object arg) {
// 		logger.error(format, arg);
// 	}
// 
// 	public static void error(String format, Object... args) {
// 		logger.error(format, args);
// 	}
// 
// 	public static void off() {
// 		org.apache.log4j.Logger.getRootLogger().setLevel(Level.OFF);
// 	}
// 
// 	public static void on() {
// 		org.apache.log4j.Logger.getRootLogger().setLevel(Level.DEBUG);
// 	}
// 
// 	@Test
// 	public void example() {
// 		String[] msgs = new String[] { "Section content: ", "@author guoguibing" };
// 
// 		debug(msgs);
// 	}
// 
// }


// Path: happycoding/src/main/java/happy/coding/system/Systems.java
import happy.coding.io.Logs;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.imageio.ImageIO;

	public static String getDesktop() {
		if (desktopPath == null)
			desktopPath = USER_DIRECTORY + FILE_SEPARATOR + "Desktop" + FILE_SEPARATOR;
		return desktopPath;
	}

	public static String getIP() {
		InetAddress ip = null;
		try {
			ip = InetAddress.getLocalHost();
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
		return ip.getHostName() + "@" + ip.getHostAddress();
	}

	public static OS getOs() {
		if (os == null) {
			for (OS m : OS.values()) {
				if (OPERATING_SYSTEM.toLowerCase().contains(m.name().toLowerCase())) {
					os = m;
					break;
				}
			}
		}
		return os;
	}

	public static void pause() {
		try {
			Logs.debug("System paused, press [enter] to continue ...");