public final class ListOfUsers$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
    private final static kotlinx.serialization.SerialDescriptor $$serialDesc

    public final static ListOfUsers$$serializer INSTANCE

    static void <clinit>() {
        LABEL (L0)
        LINENUMBER (13)
          NEW
          DUP
          INVOKESPECIAL (ListOfUsers$$serializer, <init>, ()V)
          ASTORE (0)
          ALOAD (0)
          PUTSTATIC (INSTANCE, LListOfUsers$$serializer;)
          NEW
          DUP
          LDC (ListOfUsers)
          GETSTATIC (INSTANCE, LListOfUsers$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V)
          ASTORE (0)
          ALOAD (0)
          LDC (list)
          ICONST_0
          INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
          ALOAD (0)
          PUTSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          RETURN
    }

    private void <init>() {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public kotlinx.serialization.KSerializer[] childSerializers() {
        LABEL (L0)
          ICONST_1
          ANEWARRAY
          DUP
          ICONST_0
          NEW
          DUP
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          AASTORE
          ARETURN
        LABEL (L1)
    }

    public ListOfUsers deserialize(kotlinx.serialization.Decoder decoder) {
        LABEL (L0)
          ALOAD (1)
          LDC (decoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (2)
          ICONST_0
          ISTORE (4)
          ICONST_0
          ISTORE (5)
          ACONST_NULL
          ASTORE (6)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Decoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeDecoder;)
          ASTORE (1)
        LABEL (L1)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/SerialDescriptor;)I)
          ISTORE (3)
          ILOAD (3)
          TABLESWITCH
        LABEL (L2)
          ICONST_1
          ISTORE (4)
        LABEL (L3)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          NEW
          DUP
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          ILOAD (5)
          ICONST_1
          IAND
          IFEQ (L4)
          ALOAD (6)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, updateSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
          GOTO (L5)
        LABEL (L4)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;)Ljava/lang/Object;)
        LABEL (L5)
          CHECKCAST
          ASTORE (6)
          ILOAD (5)
          ICONST_1
          IOR
          ISTORE (5)
          ILOAD (4)
          IFEQ (L1)
        LABEL (L6)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          NEW
          DUP
          ILOAD (5)
          ALOAD (6)
          ACONST_NULL
          INVOKESPECIAL (ListOfUsers, <init>, (ILjava/util/List;Lkotlinx/serialization/SerializationConstructorMarker;)V)
          ARETURN
        LABEL (L7)
          NEW
          DUP
          ILOAD (3)
          INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
          CHECKCAST
          ATHROW
        LABEL (L8)
    }

    public java.lang.Object deserialize(kotlinx.serialization.Decoder p0) {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          ALOAD (1)
          INVOKEVIRTUAL (ListOfUsers$$serializer, deserialize, (Lkotlinx/serialization/Decoder;)LListOfUsers;)
          ARETURN
    }

    public kotlinx.serialization.SerialDescriptor getDescriptor()

    public ListOfUsers patch(kotlinx.serialization.Decoder decoder, ListOfUsers old)

    public java.lang.Object patch(kotlinx.serialization.Decoder p0, java.lang.Object p1)

    public void serialize(kotlinx.serialization.Encoder encoder, ListOfUsers obj) {
        LABEL (L0)
          ALOAD (1)
          LDC (encoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (obj)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (3)
          ALOAD (1)
          ALOAD (3)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Encoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeEncoder;)
          ASTORE (1)
          ALOAD (2)
          ALOAD (1)
          ALOAD (3)
          INVOKESTATIC (ListOfUsers, write$Self, (LListOfUsers;Lkotlinx/serialization/CompositeEncoder;Lkotlinx/serialization/SerialDescriptor;)V)
          ALOAD (1)
          ALOAD (3)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          RETURN
        LABEL (L1)
    }

    public void serialize(kotlinx.serialization.Encoder p0, java.lang.Object p1) {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          ALOAD (1)
          ALOAD (2)
          CHECKCAST
          INVOKEVIRTUAL (ListOfUsers$$serializer, serialize, (Lkotlinx/serialization/Encoder;LListOfUsers;)V)
          RETURN
    }
}

public final class ListOfUsers$Companion : java/lang/Object {
    private void <init>() {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
        LABEL (L0)
        LINENUMBER (13)
          ALOAD (0)
          INVOKESPECIAL (ListOfUsers$Companion, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public final kotlinx.serialization.KSerializer serializer()
}

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

    private final java.util.List list

    static void <clinit>() {
          NEW
          DUP
          ACONST_NULL
          INVOKESPECIAL (ListOfUsers$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
          PUTSTATIC (Companion, LListOfUsers$Companion;)
          RETURN
    }

    public void <init>(java.util.List list) {
        LABEL (L0)
          ALOAD (1)
          LDC (list)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
        LABEL (L1)
        LINENUMBER (13)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ALOAD (0)
          ALOAD (1)
          PUTFIELD (list, Ljava/util/List;)
          RETURN
        LABEL (L2)
    }

    public void <init>(int seen1, java.util.List list, kotlinx.serialization.SerializationConstructorMarker serializationConstructorMarker) {
        LABEL (L0)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ILOAD (1)
          ICONST_1
          IAND
          IFNE (L1)
          NEW
          DUP
          LDC (list)
          INVOKESPECIAL (kotlinx/serialization/MissingFieldException, <init>, (Ljava/lang/String;)V)
          CHECKCAST
          ATHROW
        LABEL (L1)
          ALOAD (0)
          ALOAD (2)
          PUTFIELD (list, Ljava/util/List;)
          RETURN
        LABEL (L2)
    }

    public final java.util.List getList()

    public final static void write$Self(ListOfUsers self, kotlinx.serialization.CompositeEncoder output, kotlinx.serialization.SerialDescriptor serialDesc) {
        LABEL (L0)
          ALOAD (0)
          LDC (self)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          LDC (output)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (serialDesc)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          NEW
          DUP
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/ArrayListSerializer, <init>, (Lkotlinx/serialization/KSerializer;)V)
          ALOAD (0)
          GETFIELD (list, Ljava/util/List;)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
          RETURN
        LABEL (L1)
    }
}

public final class OptionalUser$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
    private final static kotlinx.serialization.SerialDescriptor $$serialDesc

    public final static OptionalUser$$serializer INSTANCE

    static void <clinit>() {
        LABEL (L0)
        LINENUMBER (10)
          NEW
          DUP
          INVOKESPECIAL (OptionalUser$$serializer, <init>, ()V)
          ASTORE (0)
          ALOAD (0)
          PUTSTATIC (INSTANCE, LOptionalUser$$serializer;)
          NEW
          DUP
          LDC (OptionalUser)
          GETSTATIC (INSTANCE, LOptionalUser$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V)
          ASTORE (0)
          ALOAD (0)
          LDC (user)
          ICONST_1
          INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
          ALOAD (0)
          PUTSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          RETURN
    }

    private void <init>() {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public kotlinx.serialization.KSerializer[] childSerializers() {
        LABEL (L0)
          ICONST_1
          ANEWARRAY
          DUP
          ICONST_0
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          AASTORE
          ARETURN
        LABEL (L1)
    }

    public OptionalUser deserialize(kotlinx.serialization.Decoder decoder) {
        LABEL (L0)
          ALOAD (1)
          LDC (decoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (2)
          ICONST_0
          ISTORE (4)
          ICONST_0
          ISTORE (5)
          ACONST_NULL
          ASTORE (6)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Decoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeDecoder;)
          ASTORE (1)
        LABEL (L1)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/SerialDescriptor;)I)
          ISTORE (3)
          ILOAD (3)
          TABLESWITCH
        LABEL (L2)
          ICONST_1
          ISTORE (4)
        LABEL (L3)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          ILOAD (5)
          ICONST_1
          IAND
          IFEQ (L4)
          ALOAD (6)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, updateSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;Ljava/lang/Object;)Ljava/lang/Object;)
          GOTO (L5)
        LABEL (L4)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/DeserializationStrategy;)Ljava/lang/Object;)
        LABEL (L5)
          CHECKCAST
          ASTORE (6)
          ILOAD (5)
          ICONST_1
          IOR
          ISTORE (5)
          ILOAD (4)
          IFEQ (L1)
        LABEL (L6)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          NEW
          DUP
          ILOAD (5)
          ALOAD (6)
          ACONST_NULL
          INVOKESPECIAL (OptionalUser, <init>, (ILUser;Lkotlinx/serialization/SerializationConstructorMarker;)V)
          ARETURN
        LABEL (L7)
          NEW
          DUP
          ILOAD (3)
          INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
          CHECKCAST
          ATHROW
        LABEL (L8)
    }

    public java.lang.Object deserialize(kotlinx.serialization.Decoder p0) {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          ALOAD (1)
          INVOKEVIRTUAL (OptionalUser$$serializer, deserialize, (Lkotlinx/serialization/Decoder;)LOptionalUser;)
          ARETURN
    }

    public kotlinx.serialization.SerialDescriptor getDescriptor()

    public OptionalUser patch(kotlinx.serialization.Decoder decoder, OptionalUser old)

    public java.lang.Object patch(kotlinx.serialization.Decoder p0, java.lang.Object p1)

    public void serialize(kotlinx.serialization.Encoder encoder, OptionalUser obj) {
        LABEL (L0)
          ALOAD (1)
          LDC (encoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (obj)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (3)
          ALOAD (1)
          ALOAD (3)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Encoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeEncoder;)
          ASTORE (1)
          ALOAD (2)
          ALOAD (1)
          ALOAD (3)
          INVOKESTATIC (OptionalUser, write$Self, (LOptionalUser;Lkotlinx/serialization/CompositeEncoder;Lkotlinx/serialization/SerialDescriptor;)V)
          ALOAD (1)
          ALOAD (3)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          RETURN
        LABEL (L1)
    }

    public void serialize(kotlinx.serialization.Encoder p0, java.lang.Object p1) {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          ALOAD (1)
          ALOAD (2)
          CHECKCAST
          INVOKEVIRTUAL (OptionalUser$$serializer, serialize, (Lkotlinx/serialization/Encoder;LOptionalUser;)V)
          RETURN
    }
}

public final class OptionalUser$Companion : java/lang/Object {
    private void <init>() {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
        LABEL (L0)
        LINENUMBER (10)
          ALOAD (0)
          INVOKESPECIAL (OptionalUser$Companion, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public final kotlinx.serialization.KSerializer serializer()
}

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

    private final User user

    static void <clinit>() {
          NEW
          DUP
          ACONST_NULL
          INVOKESPECIAL (OptionalUser$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
          PUTSTATIC (Companion, LOptionalUser$Companion;)
          RETURN
    }

    public void <init>(User user) {
        LABEL (L0)
          ALOAD (1)
          LDC (user)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
        LABEL (L1)
        LINENUMBER (10)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ALOAD (0)
          ALOAD (1)
          PUTFIELD (user, LUser;)
          RETURN
        LABEL (L2)
    }

    public void <init>(User p0, int p1, kotlin.jvm.internal.DefaultConstructorMarker p2) {
          ILOAD (2)
          ICONST_1
          IAND
          IFEQ (L0)
        LABEL (L1)
        LINENUMBER (10)
          NEW
          DUP
          LDC ()
          LDC ()
          INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
          ASTORE (1)
        LABEL (L0)
          ALOAD (0)
          ALOAD (1)
          INVOKESPECIAL (OptionalUser, <init>, (LUser;)V)
          RETURN
    }

    public void <init>() {
          ALOAD (0)
          ACONST_NULL
          ICONST_1
          ACONST_NULL
          INVOKESPECIAL (OptionalUser, <init>, (LUser;ILkotlin/jvm/internal/DefaultConstructorMarker;)V)
          RETURN
    }

    public void <init>(int seen1, User user, kotlinx.serialization.SerializationConstructorMarker serializationConstructorMarker) {
        LABEL (L0)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ILOAD (1)
          ICONST_1
          IAND
          IFEQ (L1)
          ALOAD (0)
          ALOAD (2)
          PUTFIELD (user, LUser;)
          GOTO (L2)
        LABEL (L1)
          ALOAD (0)
        LABEL (L3)
        LINENUMBER (10)
          NEW
          DUP
          LDC ()
          LDC ()
          INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
          PUTFIELD (user, LUser;)
        LABEL (L2)
          RETURN
        LABEL (L4)
    }

    public final User getUser()

    public final static void write$Self(OptionalUser self, kotlinx.serialization.CompositeEncoder output, kotlinx.serialization.SerialDescriptor serialDesc) {
        LABEL (L0)
          ALOAD (0)
          LDC (self)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          LDC (output)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (serialDesc)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (0)
          GETFIELD (user, LUser;)
        LABEL (L1)
        LINENUMBER (10)
          NEW
          DUP
          LDC ()
          LDC ()
          INVOKESPECIAL (User, <init>, (Ljava/lang/String;Ljava/lang/String;)V)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, areEqual, (Ljava/lang/Object;Ljava/lang/Object;)Z)
          ICONST_1
          IXOR
          IFNE (L2)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, shouldEncodeElementDefault, (Lkotlinx/serialization/SerialDescriptor;I)Z)
          IFEQ (L3)
        LABEL (L2)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          ALOAD (0)
          GETFIELD (user, LUser;)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, encodeSerializableElement, (Lkotlinx/serialization/SerialDescriptor;ILkotlinx/serialization/SerializationStrategy;Ljava/lang/Object;)V)
        LABEL (L3)
          RETURN
        LABEL (L4)
    }
}

public final class User$$serializer : java/lang/Object, kotlinx/serialization/internal/GeneratedSerializer {
    private final static kotlinx.serialization.SerialDescriptor $$serialDesc

    public final static User$$serializer INSTANCE

    static void <clinit>() {
        LABEL (L0)
        LINENUMBER (7)
          NEW
          DUP
          INVOKESPECIAL (User$$serializer, <init>, ()V)
          ASTORE (0)
          ALOAD (0)
          PUTSTATIC (INSTANCE, LUser$$serializer;)
          NEW
          DUP
          LDC (User)
          GETSTATIC (INSTANCE, LUser$$serializer;)
          CHECKCAST
          INVOKESPECIAL (kotlinx/serialization/internal/SerialClassDescImpl, <init>, (Ljava/lang/String;Lkotlinx/serialization/internal/GeneratedSerializer;)V)
          ASTORE (0)
          ALOAD (0)
          LDC (firstName)
          ICONST_0
          INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
          ALOAD (0)
          LDC (lastName)
          ICONST_0
          INVOKEVIRTUAL (kotlinx/serialization/internal/SerialClassDescImpl, addElement, (Ljava/lang/String;Z)V)
          ALOAD (0)
          PUTSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          RETURN
    }

    private void <init>() {
        LABEL (L0)
        LINENUMBER (7)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public kotlinx.serialization.KSerializer[] childSerializers() {
        LABEL (L0)
          ICONST_2
          ANEWARRAY
          DUP
          ICONST_0
          GETSTATIC (INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
          CHECKCAST
          AASTORE
          DUP
          ICONST_1
          GETSTATIC (INSTANCE, Lkotlinx/serialization/internal/StringSerializer;)
          CHECKCAST
          AASTORE
          ARETURN
        LABEL (L1)
    }

    public User deserialize(kotlinx.serialization.Decoder decoder) {
        LABEL (L0)
          ALOAD (1)
          LDC (decoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (2)
          ICONST_0
          ISTORE (4)
          ICONST_0
          ISTORE (5)
          ACONST_NULL
          ASTORE (6)
          ACONST_NULL
          ASTORE (7)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Decoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeDecoder;)
          ASTORE (1)
        LABEL (L1)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeElementIndex, (Lkotlinx/serialization/SerialDescriptor;)I)
          ISTORE (3)
          ILOAD (3)
          TABLESWITCH
        LABEL (L2)
          ICONST_1
          ISTORE (4)
        LABEL (L3)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/SerialDescriptor;I)Ljava/lang/String;)
          ASTORE (6)
          ILOAD (5)
          ICONST_1
          IOR
          ISTORE (5)
          ILOAD (4)
          IFEQ (L1)
        LABEL (L4)
          ALOAD (1)
          ALOAD (2)
          ICONST_1
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, decodeStringElement, (Lkotlinx/serialization/SerialDescriptor;I)Ljava/lang/String;)
          ASTORE (7)
          ILOAD (5)
          ICONST_2
          IOR
          ISTORE (5)
          ILOAD (4)
          IFEQ (L1)
        LABEL (L5)
          ALOAD (1)
          ALOAD (2)
          INVOKEINTERFACE (kotlinx/serialization/CompositeDecoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          NEW
          DUP
          ILOAD (5)
          ALOAD (6)
          ALOAD (7)
          ACONST_NULL
          INVOKESPECIAL (User, <init>, (ILjava/lang/String;Ljava/lang/String;Lkotlinx/serialization/SerializationConstructorMarker;)V)
          ARETURN
        LABEL (L6)
          NEW
          DUP
          ILOAD (3)
          INVOKESPECIAL (kotlinx/serialization/UnknownFieldException, <init>, (I)V)
          CHECKCAST
          ATHROW
        LABEL (L7)
    }

    public java.lang.Object deserialize(kotlinx.serialization.Decoder p0) {
        LABEL (L0)
        LINENUMBER (7)
          ALOAD (0)
          ALOAD (1)
          INVOKEVIRTUAL (User$$serializer, deserialize, (Lkotlinx/serialization/Decoder;)LUser;)
          ARETURN
    }

    public kotlinx.serialization.SerialDescriptor getDescriptor()

    public User patch(kotlinx.serialization.Decoder decoder, User old)

    public java.lang.Object patch(kotlinx.serialization.Decoder p0, java.lang.Object p1)

    public void serialize(kotlinx.serialization.Encoder encoder, User obj) {
        LABEL (L0)
          ALOAD (1)
          LDC (encoder)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (obj)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          GETSTATIC ($$serialDesc, Lkotlinx/serialization/SerialDescriptor;)
          ASTORE (3)
          ALOAD (1)
          ALOAD (3)
          ICONST_0
          ANEWARRAY
          INVOKEINTERFACE (kotlinx/serialization/Encoder, beginStructure, (Lkotlinx/serialization/SerialDescriptor;[Lkotlinx/serialization/KSerializer;)Lkotlinx/serialization/CompositeEncoder;)
          ASTORE (1)
          ALOAD (2)
          ALOAD (1)
          ALOAD (3)
          INVOKESTATIC (User, write$Self, (LUser;Lkotlinx/serialization/CompositeEncoder;Lkotlinx/serialization/SerialDescriptor;)V)
          ALOAD (1)
          ALOAD (3)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, endStructure, (Lkotlinx/serialization/SerialDescriptor;)V)
          RETURN
        LABEL (L1)
    }

    public void serialize(kotlinx.serialization.Encoder p0, java.lang.Object p1) {
        LABEL (L0)
        LINENUMBER (7)
          ALOAD (0)
          ALOAD (1)
          ALOAD (2)
          CHECKCAST
          INVOKEVIRTUAL (User$$serializer, serialize, (Lkotlinx/serialization/Encoder;LUser;)V)
          RETURN
    }
}

public final class User$Companion : java/lang/Object {
    private void <init>() {
        LABEL (L0)
        LINENUMBER (7)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public void <init>(kotlin.jvm.internal.DefaultConstructorMarker $constructor_marker) {
        LABEL (L0)
        LINENUMBER (7)
          ALOAD (0)
          INVOKESPECIAL (User$Companion, <init>, ()V)
          RETURN
        LABEL (L1)
    }

    public final kotlinx.serialization.KSerializer serializer()
}

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

    private final java.lang.String firstName

    private final java.lang.String lastName

    static void <clinit>() {
          NEW
          DUP
          ACONST_NULL
          INVOKESPECIAL (User$Companion, <init>, (Lkotlin/jvm/internal/DefaultConstructorMarker;)V)
          PUTSTATIC (Companion, LUser$Companion;)
          RETURN
    }

    public void <init>(java.lang.String firstName, java.lang.String lastName) {
        LABEL (L0)
          ALOAD (1)
          LDC (firstName)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (lastName)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
        LABEL (L1)
        LINENUMBER (7)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ALOAD (0)
          ALOAD (1)
          PUTFIELD (firstName, Ljava/lang/String;)
          ALOAD (0)
          ALOAD (2)
          PUTFIELD (lastName, Ljava/lang/String;)
          RETURN
        LABEL (L2)
    }

    public void <init>(int seen1, java.lang.String firstName, java.lang.String lastName, kotlinx.serialization.SerializationConstructorMarker serializationConstructorMarker) {
        LABEL (L0)
          ALOAD (0)
          INVOKESPECIAL (java/lang/Object, <init>, ()V)
          ILOAD (1)
          ICONST_1
          IAND
          IFNE (L1)
          NEW
          DUP
          LDC (firstName)
          INVOKESPECIAL (kotlinx/serialization/MissingFieldException, <init>, (Ljava/lang/String;)V)
          CHECKCAST
          ATHROW
        LABEL (L1)
          ALOAD (0)
          ALOAD (2)
          PUTFIELD (firstName, Ljava/lang/String;)
          ILOAD (1)
          ICONST_2
          IAND
          IFNE (L2)
          NEW
          DUP
          LDC (lastName)
          INVOKESPECIAL (kotlinx/serialization/MissingFieldException, <init>, (Ljava/lang/String;)V)
          CHECKCAST
          ATHROW
        LABEL (L2)
          ALOAD (0)
          ALOAD (3)
          PUTFIELD (lastName, Ljava/lang/String;)
          RETURN
        LABEL (L3)
    }

    public final java.lang.String getFirstName()

    public final java.lang.String getLastName()

    public final static void write$Self(User self, kotlinx.serialization.CompositeEncoder output, kotlinx.serialization.SerialDescriptor serialDesc) {
        LABEL (L0)
          ALOAD (0)
          LDC (self)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          LDC (output)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (2)
          LDC (serialDesc)
          INVOKESTATIC (kotlin/jvm/internal/Intrinsics, checkParameterIsNotNull, (Ljava/lang/Object;Ljava/lang/String;)V)
          ALOAD (1)
          ALOAD (2)
          ICONST_0
          ALOAD (0)
          GETFIELD (firstName, Ljava/lang/String;)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/SerialDescriptor;ILjava/lang/String;)V)
          ALOAD (1)
          ALOAD (2)
          ICONST_1
          ALOAD (0)
          GETFIELD (lastName, Ljava/lang/String;)
          INVOKEINTERFACE (kotlinx/serialization/CompositeEncoder, encodeStringElement, (Lkotlinx/serialization/SerialDescriptor;ILjava/lang/String;)V)
          RETURN
        LABEL (L1)
    }
}
