// Path: raptor/src/main/java/raptor/engine/uci/info/NodesSearchedInfo.java
// public class NodesSearchedInfo extends UCIInfo {
// 	protected int nodesSearched;
// 
// 	public int getNodesSearched() {
// 		return nodesSearched;
// 	}
// 
// 	public void setNodesSearched(int nodesSearched) {
// 		this.nodesSearched = nodesSearched;
// 	}
// 
// }


import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;
import org.apache.commons.lang.StringUtils;
import raptor.chess.Move;
import raptor.engine.uci.info.BestLineFoundInfo;
import raptor.engine.uci.info.CPULoadInfo;
import raptor.engine.uci.info.CurrentMoveInfo;
import raptor.engine.uci.info.DepthInfo;
import raptor.engine.uci.info.NodesPerSecondInfo;
import raptor.engine.uci.info.NodesSearchedInfo;
import raptor.engine.uci.info.ScoreInfo;
import raptor.engine.uci.info.SelectiveSearchDepthInfo;
import raptor.engine.uci.info.StringInfo;
import raptor.engine.uci.info.TableBaseHitsInfo;
import raptor.engine.uci.info.TimeInfo;
import raptor.engine.uci.options.UCIButton;
import raptor.engine.uci.options.UCICheck;
import raptor.engine.uci.options.UCICombo;
import raptor.engine.uci.options.UCISpinner;
import raptor.engine.uci.options.UCIString;
import raptor.service.ThreadService;
import raptor.util.RaptorLogger;
import raptor.util.RaptorStringTokenizer;
			String type = null;
			if (nextType != null) {
				type = nextType;
				nextType = null;
			} else {
				type = tok.nextToken();
			}

			while (!isSupportedInfoType(type) && tok.hasMoreTokens()) {
				type = tok.nextToken();
			}

			if (!isSupportedInfoType(type)) {
				break;
			}

			if (type.equalsIgnoreCase("depth")) {
				DepthInfo depthInfo = new DepthInfo();
				depthInfo
						.setSearchDepthPlies(Integer.parseInt(tok.nextToken()));
				infos.add(depthInfo);
			} else if (type.equalsIgnoreCase("seldepth")) {
				SelectiveSearchDepthInfo ssDepthInfo = new SelectiveSearchDepthInfo();
				ssDepthInfo.setDepthInPlies(Integer.parseInt(tok.nextToken()));
				infos.add(ssDepthInfo);
			} else if (type.equalsIgnoreCase("time")) {
				TimeInfo timeInfo = new TimeInfo();
				timeInfo.setTimeMillis(Integer.parseInt(tok.nextToken()));
				infos.add(timeInfo);
			} else if (type.equalsIgnoreCase("nodes")) {
// Path: raptor/src/main/java/raptor/engine/uci/info/NodesSearchedInfo.java
// public class NodesSearchedInfo extends UCIInfo {
// 	protected int nodesSearched;
// 
// 	public int getNodesSearched() {
// 		return nodesSearched;
// 	}
// 
// 	public void setNodesSearched(int nodesSearched) {
// 		this.nodesSearched = nodesSearched;
// 	}
// 
// }


// Path: raptor/src/main/java/raptor/engine/uci/UCIEngine.java
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Future;
import org.apache.commons.lang.StringUtils;
import raptor.chess.Move;
import raptor.engine.uci.info.BestLineFoundInfo;
import raptor.engine.uci.info.CPULoadInfo;
import raptor.engine.uci.info.CurrentMoveInfo;
import raptor.engine.uci.info.DepthInfo;
import raptor.engine.uci.info.NodesPerSecondInfo;
import raptor.engine.uci.info.NodesSearchedInfo;
import raptor.engine.uci.info.ScoreInfo;
import raptor.engine.uci.info.SelectiveSearchDepthInfo;
import raptor.engine.uci.info.StringInfo;
import raptor.engine.uci.info.TableBaseHitsInfo;
import raptor.engine.uci.info.TimeInfo;
import raptor.engine.uci.options.UCIButton;
import raptor.engine.uci.options.UCICheck;
import raptor.engine.uci.options.UCICombo;
import raptor.engine.uci.options.UCISpinner;
import raptor.engine.uci.options.UCIString;
import raptor.service.ThreadService;
import raptor.util.RaptorLogger;
import raptor.util.RaptorStringTokenizer;

			String type = null;
			if (nextType != null) {
				type = nextType;
				nextType = null;
			} else {
				type = tok.nextToken();
			}

			while (!isSupportedInfoType(type) && tok.hasMoreTokens()) {
				type = tok.nextToken();
			}

			if (!isSupportedInfoType(type)) {
				break;
			}

			if (type.equalsIgnoreCase("depth")) {
				DepthInfo depthInfo = new DepthInfo();
				depthInfo
						.setSearchDepthPlies(Integer.parseInt(tok.nextToken()));
				infos.add(depthInfo);
			} else if (type.equalsIgnoreCase("seldepth")) {
				SelectiveSearchDepthInfo ssDepthInfo = new SelectiveSearchDepthInfo();
				ssDepthInfo.setDepthInPlies(Integer.parseInt(tok.nextToken()));
				infos.add(ssDepthInfo);
			} else if (type.equalsIgnoreCase("time")) {
				TimeInfo timeInfo = new TimeInfo();
				timeInfo.setTimeMillis(Integer.parseInt(tok.nextToken()));
				infos.add(timeInfo);
			} else if (type.equalsIgnoreCase("nodes")) {
				NodesSearchedInfo nodesSearched = new NodesSearchedInfo();