package

public abstract class A</*0*/ T> {
    public constructor A</*0*/ T>()
    public abstract fun bar(/*0*/ x: T): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public abstract fun foo(/*0*/ x: T): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String

    public abstract inner class B</*0*/ S> /*captured type parameters: /*1*/ T*/ : A<A<T>.B<S>> {
        public constructor B</*0*/ S>()
        public abstract override /*1*/ /*fake_override*/ fun bar(/*0*/ x: A<T>.B<S>): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ x: A<T>.B<S>): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String

        public final inner class C</*0*/ U> /*captured type parameters: /*1*/ S, /*2*/ T*/ : A<A<T>.B<S>>.B<A<T>.B<S>.C<U>> {
            public constructor C</*0*/ U>()
            public open override /*1*/ fun bar(/*0*/ x: A<A<T>.B<S>>.B<A<T>.B<S>.C<U>>): kotlin.Unit
            public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
            public open fun foo(/*0*/ x: A<A<A<T>.B<S>>.B<A<T>.B<S>.C<U>>>.B<A<A<T>.B<S>>.B<A<T>.B<S>.C<U>>.C<U>>): kotlin.Unit
            public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ x: A<A<T>.B<S>>.B<A<T>.B<S>.C<U>>): kotlin.Unit
            public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
            public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
        }
    }
}
