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();}
}
