public final class Box$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
    private final kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor

    private final kotlinx.serialization.KSerializer typeSerial0

    private void <init>()

    public void <init>(kotlinx.serialization.KSerializer typeSerial0)

    public kotlinx.serialization.KSerializer[] childSerializers()

    public Box deserialize(kotlinx.serialization.encoding.Decoder decoder)

    public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder)

    public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()

    private final kotlinx.serialization.KSerializer getTypeSerial0()

    public void serialize(kotlinx.serialization.encoding.Encoder encoder, Box value)

    public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)

    public kotlinx.serialization.KSerializer[] typeParametersSerializers()
}

public final class Box$Companion : java/lang/Object {
    private void <init>()

    public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)

    public final kotlinx.serialization.KSerializer serializer(kotlinx.serialization.KSerializer typeSerial0)
}

public final class Box : java/lang/Object {
    private final static kotlinx.serialization.descriptors.SerialDescriptor $cachedDescriptor

    public final static Box$Companion Companion

    private final java.lang.Object boxed

    static void <clinit>()

    public void <init>(java.lang.Object boxed)

    public void <init>(int seen1, java.lang.Object boxed, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker)

    public final java.lang.Object component1()

    public final Box copy(java.lang.Object boxed)

    public static Box copy$default(Box p0, java.lang.Object p1, int p2, java.lang.Object p3)

    public boolean equals(java.lang.Object other)

    public final java.lang.Object getBoxed()

    public int hashCode()

    public java.lang.String toString()

    public final static void write$Self$main(Box self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc, kotlinx.serialization.KSerializer typeSerial0)
}

public final class IntrinsicsKt : java/lang/Object {
    public final static kotlinx.serialization.KSerializer getBoxSer()

    public final static kotlinx.serialization.KSerializer getSer()

    public final static kotlinx.serialization.KSerializer listSer()

    public final static void test() {
        LABEL (L0)
        LINENUMBER (28)
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          POP
        LABEL (L1)
        LINENUMBER (29)
          ICONST_0
          ISTORE (0)
        LABEL (L2)
        LINENUMBER (47)
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
        LABEL (L3)
          POP
        LABEL (L4)
        LINENUMBER (30)
          ICONST_0
          ISTORE (0)
        LABEL (L5)
        LINENUMBER (48)
          GETSTATIC (Box, Companion, LBox$Companion;)
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
        LABEL (L6)
          POP
        LABEL (L7)
        LINENUMBER (31)
          ICONST_0
          ISTORE (0)
        LABEL (L8)
        LINENUMBER (49)
          GETSTATIC (Box, Companion, LBox$Companion;)
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
        LABEL (L9)
          POP
        LABEL (L10)
        LINENUMBER (32)
          ICONST_0
          ISTORE (0)
        LABEL (L11)
        LINENUMBER (50)
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
        LABEL (L12)
          POP
        LABEL (L13)
        LINENUMBER (34)
          GETSTATIC (Box, Companion, LBox$Companion;)
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
          POP
        LABEL (L14)
        LINENUMBER (36)
          ICONST_0
          ISTORE (0)
        LABEL (L15)
        LINENUMBER (51)
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          GETSTATIC (Box, Companion, LBox$Companion;)
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
        LABEL (L16)
          POP
        LABEL (L17)
        LINENUMBER (38)
          GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
          POP
        LABEL (L18)
        LINENUMBER (40)
          GETSTATIC (SerializableObject, INSTANCE, LSerializableObject;)
          INVOKEVIRTUAL (SerializableObject, serializer, ()Lkotlinx/serialization/KSerializer;)
          POP
        LABEL (L19)
        LINENUMBER (42)
          ICONST_0
          ISTORE (0)
        LABEL (L20)
        LINENUMBER (52)
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          NEW (kotlinx/serialization/internal/ArrayListSerializer)
          DUP
          GETSTATIC (Box, Companion, LBox$Companion;)
          GETSTATIC (kotlinx/serialization/internal/IntSerializer, INSTANCE, Lkotlinx/serialization/internal/IntSerializer;)
          INVOKEVIRTUAL (Box$Companion, serializer, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
        LABEL (L21)
          POP
        LABEL (L22)
        LINENUMBER (44)
          GETSTATIC (Simple, Companion, LSimple$Companion;)
          INVOKEVIRTUAL (Simple$Companion, serializer, ()Lkotlinx/serialization/KSerializer;)
          INVOKESTATIC (kotlinx/serialization/builtins/BuiltinSerializersKt, getNullable, (Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/KSerializer;)
          POP
        LABEL (L23)
        LINENUMBER (45)
          RETURN
    }
}

final class SerializableObject$1 : kotlin/jvm/internal/Lambda, kotlin/jvm/functions/Function0 {
    public final static SerializableObject$1 INSTANCE

    static void <clinit>()

    void <init>()

    public final kotlinx.serialization.KSerializer invoke()

    public java.lang.Object invoke()
}

public final class SerializableObject : java/lang/Object {
    private final static kotlin.Lazy $cachedSerializer$delegate

    public final static SerializableObject INSTANCE

    static void <clinit>()

    private void <init>()

    private final kotlinx.serialization.KSerializer get$cachedSerializer()

    public final kotlinx.serialization.KSerializer serializer()
}

public final class Simple$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
    public final static Simple$$serializer INSTANCE

    private final static kotlinx.serialization.internal.PluginGeneratedSerialDescriptor descriptor

    static void <clinit>()

    private void <init>()

    public kotlinx.serialization.KSerializer[] childSerializers()

    public Simple deserialize(kotlinx.serialization.encoding.Decoder decoder)

    public java.lang.Object deserialize(kotlinx.serialization.encoding.Decoder decoder)

    public kotlinx.serialization.descriptors.SerialDescriptor getDescriptor()

    public void serialize(kotlinx.serialization.encoding.Encoder encoder, Simple value)

    public void serialize(kotlinx.serialization.encoding.Encoder encoder, java.lang.Object value)

    public kotlinx.serialization.KSerializer[] typeParametersSerializers()
}

public final class Simple$Companion : java/lang/Object {
    private void <init>()

    public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker)

    public final kotlinx.serialization.KSerializer serializer()
}

public final class Simple : java/lang/Object {
    public final static Simple$Companion Companion

    private final java.lang.String firstName

    private final java.lang.String lastName

    static void <clinit>()

    public void <init>(java.lang.String firstName, java.lang.String lastName)

    public void <init>(int seen1, java.lang.String firstName, java.lang.String lastName, kotlinx.serialization.internal.SerializationConstructorMarker serializationConstructorMarker)

    public final java.lang.String getFirstName()

    public final java.lang.String getLastName()

    public final static void write$Self$main(Simple self, kotlinx.serialization.encoding.CompositeEncoder output, kotlinx.serialization.descriptors.SerialDescriptor serialDesc)
}
