import java.lang.reflect.Constructor;

public class X {
	public <T extends X> Constructor<T> ctor() {
		return null;
	}

	static <T extends X> T f1() throws Exception {
		return new X().<T>ctor().newInstance(new Object[0]);
	}

	static <T extends X> T f2() throws Exception {
		return f1();
	}
}
