// Path: src/main/java/com/github/worldsender/mcanm/common/exceptions/ModelFormatException.java
// public class ModelFormatException extends IllegalArgumentException {
// 	/**
// 	 *
// 	 */
// 	private static final long serialVersionUID = -4000239134878464297L;
// 
// 	public ModelFormatException() {
// 		super();
// 	}
// 
// 	public ModelFormatException(String message) {
// 		super(message);
// 	}
// 
// 	public ModelFormatException(Throwable cause) {
// 		super(cause);
// 	}
// 
// 	public ModelFormatException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// }


import java.io.DataInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.lwjgl.util.vector.Vector2f;
import com.github.worldsender.mcanm.common.exceptions.ModelFormatException;
	/**
	 * Registers an {@link IEaseInSplineFactory} for the descriminator byte given.
	 *
	 * @param descriminator
	 *            the descriminator byte
	 * @param factory
	 *            the factory, can't be <code>null</code>
	 * @return a previously registered factory, if any
	 */
	public static IEaseInSplineFactory registerEaseInFactory(byte descriminator, IEaseInSplineFactory factory) {
		if (factory == null)
			throw new IllegalArgumentException("Factory can't be null");
		return ease_in_factories.put(descriminator, factory);
	}

	/**
	 * Constructs a new spline from the read descriminator byte using previously registered with
	 * {@link #registerEaseInFactory(byte, IEaseInSplineFactory)}. This will be the spline from -infinity to right.x.
	 *
	 * @param descr
	 *            the read descriminator byte
	 * @param right
	 *            right point of this spline
	 * @param dis
	 *            a {@link DataInputStream} to read additional data from
	 * @return
	 * @throws ModelFormatException
	 * @throws IOException
	 */
	public static Spline easeIn(byte descr, Vector2f right, DataInputStream dis)
// Path: src/main/java/com/github/worldsender/mcanm/common/exceptions/ModelFormatException.java
// public class ModelFormatException extends IllegalArgumentException {
// 	/**
// 	 *
// 	 */
// 	private static final long serialVersionUID = -4000239134878464297L;
// 
// 	public ModelFormatException() {
// 		super();
// 	}
// 
// 	public ModelFormatException(String message) {
// 		super(message);
// 	}
// 
// 	public ModelFormatException(Throwable cause) {
// 		super(cause);
// 	}
// 
// 	public ModelFormatException(String message, Throwable cause) {
// 		super(message, cause);
// 	}
// }


// Path: src/main/java/com/github/worldsender/mcanm/common/animation/parts/Spline.java
import java.io.DataInputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.lwjgl.util.vector.Vector2f;
import com.github.worldsender.mcanm.common.exceptions.ModelFormatException;

	/**
	 * Registers an {@link IEaseInSplineFactory} for the descriminator byte given.
	 *
	 * @param descriminator
	 *            the descriminator byte
	 * @param factory
	 *            the factory, can't be <code>null</code>
	 * @return a previously registered factory, if any
	 */
	public static IEaseInSplineFactory registerEaseInFactory(byte descriminator, IEaseInSplineFactory factory) {
		if (factory == null)
			throw new IllegalArgumentException("Factory can't be null");
		return ease_in_factories.put(descriminator, factory);
	}

	/**
	 * Constructs a new spline from the read descriminator byte using previously registered with
	 * {@link #registerEaseInFactory(byte, IEaseInSplineFactory)}. This will be the spline from -infinity to right.x.
	 *
	 * @param descr
	 *            the read descriminator byte
	 * @param right
	 *            right point of this spline
	 * @param dis
	 *            a {@link DataInputStream} to read additional data from
	 * @return
	 * @throws ModelFormatException
	 * @throws IOException
	 */
	public static Spline easeIn(byte descr, Vector2f right, DataInputStream dis)
			throws ModelFormatException,