package

public interface A</*0*/ T> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    @kotlin.jvm.JvmDefault public open fun test(/*0*/ p: T): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface ANonDefault {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface B</*0*/ T> : A<T> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ fun test(/*0*/ p: T): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface C</*0*/ T> : A<T>, ANonDefault {
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ fun test(/*0*/ p: T): kotlin.Unit
    public open override /*1*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface C1 : C<kotlin.String> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface C2 : C<kotlin.String>, ANonDefault {
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*3*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface D</*0*/ T> : ANonDefault, A<T> {
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ fun test(/*0*/ p: T): kotlin.Unit
    public open override /*1*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface D1 : D<kotlin.String> {
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface D2 : ANonDefault, D<kotlin.String> {
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*3*/ fun test(/*0*/ p: kotlin.String): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}
