// Path: src/com/iconmaster/source/SourceOptions.java
// public class SourceOptions {
// 	public String input;
// 	public String platform;
// 	public boolean compile;
// 	
// 	public File assets;
// 	public File libs;
// 	public File outputFile;
// 	
// 	public OutputStream sout = System.out;
// 	public InputStream sin = System.in;
// 	public OutputStream serr = System.err;
// 	
// 	public boolean noRunAssemble = false;
// 	
// 	public SourceOptions(String input, String platform, boolean compile) {
// 		this.input = input;
// 		this.platform = platform;
// 		this.compile = compile;
// 	}
// 
// 	public SourceOptions setFiles(File assets, File libs, File outputFile) {
// 		this.assets = assets;
// 		this.libs = libs;
// 		this.outputFile = outputFile;
// 		return this;
// 	}
// 	
// 	public SourceOptions setStreams(OutputStream sout, InputStream sin, OutputStream serr) {
// 		this.sout = sout;
// 		this.sin = sin;
// 		this.serr = serr;
// 		return this;
// 	}
// }
// 
// Path: src/com/iconmaster/source/exception/SourceException.java
// public class SourceException extends Exception {
// 	private final Range range;
// 	
// 	public SourceException(Range range) {
// 		super(range.toString()+": Unknown Source exception");
// 		this.range = range;
// 	}
// 	
// 	public SourceException(Range range, String message) {
// 		super((range==null?"null: ":range.toString()+": ")+message);
// 		this.range = range;
// 	}
// 	
// 	@Override
// 	public String getMessage() {
// 		return super.getMessage();
// 	}
// 	
// 	public Range getRange() {
// 		return range;
// 	}
// }


import com.iconmaster.source.SourceOptions;
import com.iconmaster.source.exception.SourceException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
package com.iconmaster.source.assemble;


/**
 *
 * @author iconmaster
 */
public abstract class AssembledOutput {
	public ArrayList<SourceException> errs = new ArrayList<>();
	
// Path: src/com/iconmaster/source/SourceOptions.java
// public class SourceOptions {
// 	public String input;
// 	public String platform;
// 	public boolean compile;
// 	
// 	public File assets;
// 	public File libs;
// 	public File outputFile;
// 	
// 	public OutputStream sout = System.out;
// 	public InputStream sin = System.in;
// 	public OutputStream serr = System.err;
// 	
// 	public boolean noRunAssemble = false;
// 	
// 	public SourceOptions(String input, String platform, boolean compile) {
// 		this.input = input;
// 		this.platform = platform;
// 		this.compile = compile;
// 	}
// 
// 	public SourceOptions setFiles(File assets, File libs, File outputFile) {
// 		this.assets = assets;
// 		this.libs = libs;
// 		this.outputFile = outputFile;
// 		return this;
// 	}
// 	
// 	public SourceOptions setStreams(OutputStream sout, InputStream sin, OutputStream serr) {
// 		this.sout = sout;
// 		this.sin = sin;
// 		this.serr = serr;
// 		return this;
// 	}
// }
// 
// Path: src/com/iconmaster/source/exception/SourceException.java
// public class SourceException extends Exception {
// 	private final Range range;
// 	
// 	public SourceException(Range range) {
// 		super(range.toString()+": Unknown Source exception");
// 		this.range = range;
// 	}
// 	
// 	public SourceException(Range range, String message) {
// 		super((range==null?"null: ":range.toString()+": ")+message);
// 		this.range = range;
// 	}
// 	
// 	@Override
// 	public String getMessage() {
// 		return super.getMessage();
// 	}
// 	
// 	public Range getRange() {
// 		return range;
// 	}
// }


// Path: src/com/iconmaster/source/assemble/AssembledOutput.java
import com.iconmaster.source.SourceOptions;
import com.iconmaster.source.exception.SourceException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

package com.iconmaster.source.assemble;


/**
 *
 * @author iconmaster
 */
public abstract class AssembledOutput {
	public ArrayList<SourceException> errs = new ArrayList<>();
	
	public void saveToFile(SourceOptions opts) {