// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemoveRecipesHandler.java
// public class JsonRemoveRecipesHandler
// {
// 	List<JsonRemovedCraftingRecipe> craftingRemoved = new ArrayList<>();
// 	List<JsonRemovedSmeltingRecipe> smeltingRemoved = new ArrayList<>();
// 
// 	List<String> includes = new ArrayList<>();
// 	List<String> modDependencies = new ArrayList<>();
// 
// 	String __COMMENT = "Add items whose recipes you want to remove above. This does not affect recipes removed by " +
// 		"BetterBeginnings through regular config. Some examples are provided above (both of which have no recipe already).";
// 
// 	public JsonRemoveRecipesHandler()
// 	{
// 		// Some examples
// 		craftingRemoved.add(new JsonRemovedCraftingRecipe(new ItemStack(Blocks.barrier)));
// 		smeltingRemoved.add(new JsonRemovedSmeltingRecipe(new ItemStack(RegisterItems.testItem)));
// 	}
// 
// 	public List<JsonRemovedCraftingRecipe> getCraftingRemoved()
// 	{
// 		return craftingRemoved;
// 	}
// 
// 	public List<JsonRemovedSmeltingRecipe> getSmeltingRemoved()
// 	{
// 		return smeltingRemoved;
// 	}
// 
// 	public List<String> getIncludes()
// 	{
// 		return includes;
// 	}
// 
// 	public List<String> getModDependencies()
// 	{
// 		return modDependencies;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemovedCraftingRecipe.java
// public class JsonRemovedCraftingRecipe
// {
// 	public JsonLoadedItem removedItem;
// 
// 	public JsonRemovedCraftingRecipe(ItemStack stack)
// 	{
// 		removedItem = new JsonLoadedItem(stack);
// 	}
// 
// 	public void register()
// 	{
// 		for (ItemStack rem : removedItem.getItemStacks())
// 		{
// 			RemoveRecipes.getCustomRemovedCraftingRecipes().add(rem);
// 		}
// 	}
// 
// 	public JsonLoadedItem getRemovedItem()
// 	{
// 		return removedItem;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemovedSmeltingRecipe.java
// public class JsonRemovedSmeltingRecipe
// {
// 	public JsonLoadedItem removedItem;
// 
// 	public JsonRemovedSmeltingRecipe(ItemStack stack)
// 	{
// 		removedItem = new JsonLoadedItem(stack);
// 	}
// 
// 	public void register()
// 	{
// 		for (ItemStack rem : removedItem.getItemStacks())
// 		{
// 			RemoveRecipes.getCustomRemovedFurnaceRecipes().add(rem);
// 		}
// 	}
// 
// 	public JsonLoadedItem getRemovedItem()
// 	{
// 		return removedItem;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/util/LogUtil.java
// public class LogUtil
// {
// 	public static void logDebug(String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(Level.DEBUG, text);
// 		}
// 	}
// 
// 	public static void logDebug(Level level, String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(level, text);
// 		}
// 	}
// 
// 	public static void log(Level level, String text)
// 	{
// 		FMLLog.log(ModMain.NAME, level, text);
// 	}
// 
// 	public static void log(String text)
// 	{
// 		log(Level.INFO, text);
// 	}
// }


import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemoveRecipesHandler;
import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemovedCraftingRecipe;
import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemovedSmeltingRecipe;
import net.einsteinsci.betterbeginnings.util.FileUtil;
import net.einsteinsci.betterbeginnings.util.LogUtil;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import org.apache.logging.log4j.Level;
import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
			json = "{}";
		}

		return json;
	}

	@Override
	public List<String> getIncludedJson(File subfolder)
	{
		List<String> res = new ArrayList<>();
		for (String fileName : customRecipes.getIncludes())
		{
			File incf = new File(subfolder, fileName);
			String json = FileUtil.readAllText(incf);
			res.add(json);
		}

		return res;
	}

	@Override
	public void loadJsonConfig(FMLInitializationEvent e, String mainJson, String autoJson, String customJson)
	{
		// no main, only custom.

		customRecipes = BBJsonLoader.deserializeObject(customJson, JsonRemoveRecipesHandler.class);
		for (JsonRemovedCraftingRecipe r : customRecipes.getCraftingRemoved())
		{
			r.register();
		}
// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemoveRecipesHandler.java
// public class JsonRemoveRecipesHandler
// {
// 	List<JsonRemovedCraftingRecipe> craftingRemoved = new ArrayList<>();
// 	List<JsonRemovedSmeltingRecipe> smeltingRemoved = new ArrayList<>();
// 
// 	List<String> includes = new ArrayList<>();
// 	List<String> modDependencies = new ArrayList<>();
// 
// 	String __COMMENT = "Add items whose recipes you want to remove above. This does not affect recipes removed by " +
// 		"BetterBeginnings through regular config. Some examples are provided above (both of which have no recipe already).";
// 
// 	public JsonRemoveRecipesHandler()
// 	{
// 		// Some examples
// 		craftingRemoved.add(new JsonRemovedCraftingRecipe(new ItemStack(Blocks.barrier)));
// 		smeltingRemoved.add(new JsonRemovedSmeltingRecipe(new ItemStack(RegisterItems.testItem)));
// 	}
// 
// 	public List<JsonRemovedCraftingRecipe> getCraftingRemoved()
// 	{
// 		return craftingRemoved;
// 	}
// 
// 	public List<JsonRemovedSmeltingRecipe> getSmeltingRemoved()
// 	{
// 		return smeltingRemoved;
// 	}
// 
// 	public List<String> getIncludes()
// 	{
// 		return includes;
// 	}
// 
// 	public List<String> getModDependencies()
// 	{
// 		return modDependencies;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemovedCraftingRecipe.java
// public class JsonRemovedCraftingRecipe
// {
// 	public JsonLoadedItem removedItem;
// 
// 	public JsonRemovedCraftingRecipe(ItemStack stack)
// 	{
// 		removedItem = new JsonLoadedItem(stack);
// 	}
// 
// 	public void register()
// 	{
// 		for (ItemStack rem : removedItem.getItemStacks())
// 		{
// 			RemoveRecipes.getCustomRemovedCraftingRecipes().add(rem);
// 		}
// 	}
// 
// 	public JsonLoadedItem getRemovedItem()
// 	{
// 		return removedItem;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/recipe/JsonRemovedSmeltingRecipe.java
// public class JsonRemovedSmeltingRecipe
// {
// 	public JsonLoadedItem removedItem;
// 
// 	public JsonRemovedSmeltingRecipe(ItemStack stack)
// 	{
// 		removedItem = new JsonLoadedItem(stack);
// 	}
// 
// 	public void register()
// 	{
// 		for (ItemStack rem : removedItem.getItemStacks())
// 		{
// 			RemoveRecipes.getCustomRemovedFurnaceRecipes().add(rem);
// 		}
// 	}
// 
// 	public JsonLoadedItem getRemovedItem()
// 	{
// 		return removedItem;
// 	}
// }
// 
// Path: src/main/java/net/einsteinsci/betterbeginnings/util/LogUtil.java
// public class LogUtil
// {
// 	public static void logDebug(String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(Level.DEBUG, text);
// 		}
// 	}
// 
// 	public static void logDebug(Level level, String text)
// 	{
// 		if (BBConfig.debugLogging)
// 		{
// 			log(level, text);
// 		}
// 	}
// 
// 	public static void log(Level level, String text)
// 	{
// 		FMLLog.log(ModMain.NAME, level, text);
// 	}
// 
// 	public static void log(String text)
// 	{
// 		log(Level.INFO, text);
// 	}
// }


// Path: src/main/java/net/einsteinsci/betterbeginnings/config/json/RemovalConfig.java
import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemoveRecipesHandler;
import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemovedCraftingRecipe;
import net.einsteinsci.betterbeginnings.config.json.recipe.JsonRemovedSmeltingRecipe;
import net.einsteinsci.betterbeginnings.util.FileUtil;
import net.einsteinsci.betterbeginnings.util.LogUtil;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import org.apache.logging.log4j.Level;
import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;

			json = "{}";
		}

		return json;
	}

	@Override
	public List<String> getIncludedJson(File subfolder)
	{
		List<String> res = new ArrayList<>();
		for (String fileName : customRecipes.getIncludes())
		{
			File incf = new File(subfolder, fileName);
			String json = FileUtil.readAllText(incf);
			res.add(json);
		}

		return res;
	}

	@Override
	public void loadJsonConfig(FMLInitializationEvent e, String mainJson, String autoJson, String customJson)
	{
		// no main, only custom.

		customRecipes = BBJsonLoader.deserializeObject(customJson, JsonRemoveRecipesHandler.class);
		for (JsonRemovedCraftingRecipe r : customRecipes.getCraftingRemoved())
		{
			r.register();
		}
		for (JsonRemovedSmeltingRecipe r : customRecipes.getSmeltingRemoved())