public class java.io.ObjectOutputStream extends java.io.OutputStream implements java.io.ObjectOutput, java.io.ObjectStreamConstants
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: java.io.ObjectOutputStream
  super_class: java.io.OutputStream
{
  private final java.io.ObjectOutputStream$BlockDataOutputStream bout;
    descriptor: Ljava/io/ObjectOutputStream$BlockDataOutputStream;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectOutputStream$HandleTable handles;
    descriptor: Ljava/io/ObjectOutputStream$HandleTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.ObjectOutputStream$ReplaceTable subs;
    descriptor: Ljava/io/ObjectOutputStream$ReplaceTable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int protocol;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int depth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private byte[] primVals;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private final boolean enableOverride;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private boolean enableReplace;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.io.SerialCallbackContext curContext;
    descriptor: Ljava/io/SerialCallbackContext;
    flags: (0x0002) ACC_PRIVATE

  private java.io.ObjectOutputStream$PutFieldImpl curPut;
    descriptor: Ljava/io/ObjectOutputStream$PutFieldImpl;
    flags: (0x0002) ACC_PRIVATE

  private final java.io.ObjectOutputStream$DebugTraceInfoStack debugInfoStack;
    descriptor: Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final boolean extendedDebugInfo;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 214
            new sun.security.action.GetBooleanAction
            dup
         1: .line 215
            ldc "sun.io.serialization.extendedDebugInfo"
         2: .line 214
            invokespecial sun.security.action.GetBooleanAction.<init>:(Ljava/lang/String;)V
         3: .line 213
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
         4: .line 215
            invokevirtual java.lang.Boolean.booleanValue:()Z
         5: .line 212
            putstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
         6: .line 215
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.OutputStream out
         0: .line 240
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 183
            aload 0 /* this */
            iconst_2
            putfield java.io.ObjectOutputStream.protocol:I
         2: .line 241
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.verifySubclass:()V
         3: .line 242
            aload 0 /* this */
            new java.io.ObjectOutputStream$BlockDataOutputStream
            dup
            aload 1 /* out */
            invokespecial java.io.ObjectOutputStream$BlockDataOutputStream.<init>:(Ljava/io/OutputStream;)V
            putfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
         4: .line 243
            aload 0 /* this */
            new java.io.ObjectOutputStream$HandleTable
            dup
            bipush 10
            ldc 3.0
            invokespecial java.io.ObjectOutputStream$HandleTable.<init>:(IF)V
            putfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
         5: .line 244
            aload 0 /* this */
            new java.io.ObjectOutputStream$ReplaceTable
            dup
            bipush 10
            ldc 3.0
            invokespecial java.io.ObjectOutputStream$ReplaceTable.<init>:(IF)V
            putfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
         6: .line 245
            aload 0 /* this */
            iconst_0
            putfield java.io.ObjectOutputStream.enableOverride:Z
         7: .line 246
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeStreamHeader:()V
         8: .line 247
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         9: .line 248
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 12
        10: .line 249
            aload 0 /* this */
            new java.io.ObjectOutputStream$DebugTraceInfoStack
            dup
            invokespecial java.io.ObjectOutputStream$DebugTraceInfoStack.<init>:()V
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        11: .line 250
            goto 13
        12: .line 251
      StackMap locals: java.io.ObjectOutputStream java.io.OutputStream
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        13: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.OutputStream out
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Ljava/io/ObjectOutputStream;
            0   14     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 272
            aload 0 /* this */
            invokespecial java.io.OutputStream.<init>:()V
         1: .line 183
            aload 0 /* this */
            iconst_2
            putfield java.io.ObjectOutputStream.protocol:I
         2: .line 273
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 1 /* sm */
        start local 1 // java.lang.SecurityManager sm
         3: .line 274
            aload 1 /* sm */
            ifnull 5
         4: .line 275
            aload 1 /* sm */
            getstatic java.io.ObjectOutputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
         5: .line 277
      StackMap locals: java.io.ObjectOutputStream java.lang.SecurityManager
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
         6: .line 278
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
         7: .line 279
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
         8: .line 280
            aload 0 /* this */
            iconst_1
            putfield java.io.ObjectOutputStream.enableOverride:Z
         9: .line 281
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        10: .line 282
            return
        end local 1 // java.lang.SecurityManager sm
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/io/ObjectOutputStream;
            3   11     1    sm  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.io.IOException, java.lang.SecurityException

  public void useProtocolVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int version
         0: .line 305
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            invokevirtual java.io.ObjectOutputStream$HandleTable.size:()I
            ifeq 2
         1: .line 307
            new java.lang.IllegalStateException
            dup
            ldc "stream non-empty"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 309
      StackMap locals:
      StackMap stack:
            iload 1 /* version */
            tableswitch { // 1 - 2
                    1: 3
                    2: 3
              default: 5
          }
         3: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* version */
            putfield java.io.ObjectOutputStream.protocol:I
         4: .line 313
            goto 8
         5: .line 316
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
         6: .line 317
            new java.lang.StringBuilder
            dup
            ldc "unknown version: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* version */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 316
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 319
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int version
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljava/io/ObjectOutputStream;
            0    9     1  version  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      version  

  public final void writeObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 343
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableOverride:Z
            ifeq 3
         1: .line 344
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream.writeObjectOverride:(Ljava/lang/Object;)V
         2: .line 345
            return
         3: .line 348
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
         4: .line 349
            goto 9
      StackMap locals:
      StackMap stack: java.io.IOException
         5: astore 2 /* ex */
        start local 2 // java.io.IOException ex
         6: .line 350
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifne 8
         7: .line 351
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual java.io.ObjectOutputStream.writeFatalException:(Ljava/io/IOException;)V
         8: .line 353
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // java.io.IOException ex
         9: .line 355
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Ljava/io/ObjectOutputStream;
            0   10     1   obj  Ljava/lang/Object;
            6    9     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           3     4       5  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  protected void writeObjectOverride(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 372
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  public void writeUnshared(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 415
            aload 0 /* this */
            aload 1 /* obj */
            iconst_1
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
         1: .line 416
            goto 6
      StackMap locals:
      StackMap stack: java.io.IOException
         2: astore 2 /* ex */
        start local 2 // java.io.IOException ex
         3: .line 417
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifne 5
         4: .line 418
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual java.io.ObjectOutputStream.writeFatalException:(Ljava/io/IOException;)V
         5: .line 420
      StackMap locals: java.io.IOException
      StackMap stack:
            aload 2 /* ex */
            athrow
        end local 2 // java.io.IOException ex
         6: .line 422
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/io/ObjectOutputStream;
            0    7     1   obj  Ljava/lang/Object;
            3    6     2    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.io.IOException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  public void defaultWriteObject();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 434
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 1 /* ctx */
        start local 1 // java.io.SerialCallbackContext ctx
         1: .line 435
            aload 1 /* ctx */
            ifnonnull 3
         2: .line 436
            new java.io.NotActiveException
            dup
            ldc "not in call to writeObject"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 438
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getObj:()Ljava/lang/Object;
            astore 2 /* curObj */
        start local 2 // java.lang.Object curObj
         4: .line 439
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
            astore 3 /* curDesc */
        start local 3 // java.io.ObjectStreamClass curDesc
         5: .line 440
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 441
            aload 0 /* this */
            aload 2 /* curObj */
            aload 3 /* curDesc */
            invokevirtual java.io.ObjectOutputStream.defaultWriteFields:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
         7: .line 442
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         8: .line 443
            return
        end local 3 // java.io.ObjectStreamClass curDesc
        end local 2 // java.lang.Object curObj
        end local 1 // java.io.SerialCallbackContext ctx
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Ljava/io/ObjectOutputStream;
            1    9     1      ctx  Ljava/io/SerialCallbackContext;
            4    9     2   curObj  Ljava/lang/Object;
            5    9     3  curDesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException

  public java.io.ObjectOutputStream$PutField putFields();
    descriptor: ()Ljava/io/ObjectOutputStream$PutField;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 456
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            ifnonnull 7
         1: .line 457
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 1 /* ctx */
        start local 1 // java.io.SerialCallbackContext ctx
         2: .line 458
            aload 1 /* ctx */
            ifnonnull 4
         3: .line 459
            new java.io.NotActiveException
            dup
            ldc "not in call to writeObject"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 461
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getObj:()Ljava/lang/Object;
            pop
         5: .line 462
            aload 1 /* ctx */
            invokevirtual java.io.SerialCallbackContext.getDesc:()Ljava/io/ObjectStreamClass;
            astore 2 /* curDesc */
        start local 2 // java.io.ObjectStreamClass curDesc
         6: .line 463
            aload 0 /* this */
            new java.io.ObjectOutputStream$PutFieldImpl
            dup
            aload 0 /* this */
            aload 2 /* curDesc */
            invokespecial java.io.ObjectOutputStream$PutFieldImpl.<init>:(Ljava/io/ObjectOutputStream;Ljava/io/ObjectStreamClass;)V
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        end local 2 // java.io.ObjectStreamClass curDesc
        end local 1 // java.io.SerialCallbackContext ctx
         7: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            areturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Ljava/io/ObjectOutputStream;
            2    7     1      ctx  Ljava/io/SerialCallbackContext;
            6    7     2  curDesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException

  public void writeFields();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 478
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            ifnonnull 2
         1: .line 479
            new java.io.NotActiveException
            dup
            ldc "no current PutField object"
            invokespecial java.io.NotActiveException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         3: .line 482
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            invokevirtual java.io.ObjectOutputStream$PutFieldImpl.writeFields:()V
         4: .line 483
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         5: .line 484
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 497
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            ifeq 2
         1: .line 498
            new java.io.IOException
            dup
            ldc "stream active"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         3: .line 501
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 121
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         4: .line 502
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         5: .line 503
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 504
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void annotateClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
         0: .line 523
            return
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1    cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      cl    

  protected void annotateProxyClass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
         0: .line 547
            return
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1    cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;)V
    MethodParameters:
      Name  Flags
      cl    

  protected java.lang.Object replaceObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
         0: .line 588
            aload 1 /* obj */
            areturn
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;
            0    1     1   obj  Ljava/lang/Object;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  protected boolean enableReplaceObject(boolean);
    descriptor: (Z)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // boolean enable
         0: .line 614
            iload 1 /* enable */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            if_icmpne 2
         1: .line 615
            iload 1 /* enable */
            ireturn
         2: .line 617
      StackMap locals:
      StackMap stack:
            iload 1 /* enable */
            ifeq 6
         3: .line 618
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         4: .line 619
            aload 2 /* sm */
            ifnull 6
         5: .line 620
            aload 2 /* sm */
            getstatic java.io.ObjectOutputStream.SUBSTITUTION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        end local 2 // java.lang.SecurityManager sm
         6: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* enable */
            putfield java.io.ObjectOutputStream.enableReplace:Z
         7: .line 624
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: ireturn
        end local 1 // boolean enable
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Ljava/io/ObjectOutputStream;
            0   10     1  enable  Z
            4    6     2      sm  Ljava/lang/SecurityManager;
    Exceptions:
      throws java.lang.SecurityException
    MethodParameters:
        Name  Flags
      enable  

  protected void writeStreamHeader();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 636
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            sipush -21267
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         1: .line 637
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_5
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         2: .line 638
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void writeClassDescriptor(java.io.ObjectStreamClass);
    descriptor: (Ljava/io/ObjectStreamClass;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
         0: .line 668
            aload 1 /* desc */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.writeNonProxy:(Ljava/io/ObjectOutputStream;)V
         1: .line 669
            return
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1  desc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      desc  

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 679
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:(I)V
         1: .line 680
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void write(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // byte[] buf
         0: .line 690
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* buf */
            iconst_0
            aload 1 /* buf */
            arraylength
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         1: .line 691
            return
        end local 1 // byte[] buf
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   buf  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // byte[] buf
        start local 2 // int off
        start local 3 // int len
         0: .line 702
            aload 1 /* buf */
            ifnonnull 2
         1: .line 703
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 705
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            iload 3 /* len */
            iadd
            istore 4 /* endoff */
        start local 4 // int endoff
         3: .line 706
            iload 2 /* off */
            iflt 4
            iload 3 /* len */
            iflt 4
            iload 4 /* endoff */
            aload 1 /* buf */
            arraylength
            if_icmpgt 4
            iload 4 /* endoff */
            ifge 5
         4: .line 707
      StackMap locals: int
      StackMap stack:
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         5: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* buf */
            iload 2 /* off */
            iload 3 /* len */
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         6: .line 710
            return
        end local 4 // int endoff
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buf
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/io/ObjectOutputStream;
            0    7     1     buf  [B
            0    7     2     off  I
            0    7     3     len  I
            3    7     4  endoff  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      buf   
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 719
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.flush:()V
         1: .line 720
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  protected void drain();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 730
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.drain:()V
         1: .line 731
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 740
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.flush:()V
         1: .line 741
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         2: .line 742
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.close:()V
         3: .line 743
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  public void writeBoolean(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // boolean val
         0: .line 753
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBoolean:(Z)V
         1: .line 754
            return
        end local 1 // boolean val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  Z
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeByte(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 764
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 765
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeShort(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 775
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShort:(I)V
         1: .line 776
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeChar(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 786
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChar:(I)V
         1: .line 787
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeInt(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int val
         0: .line 797
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         1: .line 798
            return
        end local 1 // int val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeLong(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // long val
         0: .line 808
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            lload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLong:(J)V
         1: .line 809
            return
        end local 1 // long val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeFloat(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // float val
         0: .line 819
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            fload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeFloat:(F)V
         1: .line 820
            return
        end local 1 // float val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  F
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeDouble(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // double val
         0: .line 830
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            dload 1 /* val */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeDouble:(D)V
         1: .line 831
            return
        end local 1 // double val
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   val  D
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      val   

  public void writeBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 841
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBytes:(Ljava/lang/String;)V
         1: .line 842
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  public void writeChars(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 852
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChars:(Ljava/lang/String;)V
         1: .line 853
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  public void writeUTF(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 869
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;)V
         1: .line 870
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
            0    2     1   str  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  int getProtocolVersion();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1016
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            ireturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/io/ObjectOutputStream;

  void writeTypeString(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
         0: .line 1025
            aload 1 /* str */
            ifnonnull 3
         1: .line 1026
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         2: .line 1027
            goto 8
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 2 /* handle */
        start local 2 // int handle
         4: iconst_m1
            if_icmpeq 7
         5: .line 1028
            aload 0 /* this */
            iload 2 /* handle */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
         6: .line 1029
            goto 8
         7: .line 1030
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* str */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
        end local 2 // int handle
         8: .line 1032
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljava/io/ObjectOutputStream;
            0    9     1     str  Ljava/lang/String;
            4    8     2  handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      str   

  private void verifySubclass();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1041
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 1 /* cl */
        start local 1 // java.lang.Class cl
         1: .line 1042
            aload 1 /* cl */
            ldc Ljava/io/ObjectOutputStream;
            if_acmpne 3
         2: .line 1043
            return
         3: .line 1045
      StackMap locals: java.lang.Class
      StackMap stack:
            invokestatic java.lang.System.getSecurityManager:()Ljava/lang/SecurityManager;
            astore 2 /* sm */
        start local 2 // java.lang.SecurityManager sm
         4: .line 1046
            aload 2 /* sm */
            ifnonnull 6
         5: .line 1047
            return
         6: .line 1049
      StackMap locals: java.lang.SecurityManager
      StackMap stack:
            getstatic java.io.ObjectOutputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            invokestatic java.io.ObjectStreamClass.processQueue:(Ljava/lang/ref/ReferenceQueue;Ljava/util/concurrent/ConcurrentMap;)V
         7: .line 1050
            new java.io.ObjectStreamClass$WeakClassKey
            dup
            aload 1 /* cl */
            getstatic java.io.ObjectOutputStream$Caches.subclassAuditsQueue:Ljava/lang/ref/ReferenceQueue;
            invokespecial java.io.ObjectStreamClass$WeakClassKey.<init>:(Ljava/lang/Class;Ljava/lang/ref/ReferenceQueue;)V
            astore 3 /* key */
        start local 3 // java.io.ObjectStreamClass$WeakClassKey key
         8: .line 1051
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* key */
            invokeinterface java.util.concurrent.ConcurrentMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 4 /* result */
        start local 4 // java.lang.Boolean result
         9: .line 1052
            aload 4 /* result */
            ifnonnull 12
        10: .line 1053
            aload 1 /* cl */
            invokestatic java.io.ObjectOutputStream.auditSubclass:(Ljava/lang/Class;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 4 /* result */
        11: .line 1054
            getstatic java.io.ObjectOutputStream$Caches.subclassAudits:Ljava/util/concurrent/ConcurrentMap;
            aload 3 /* key */
            aload 4 /* result */
            invokeinterface java.util.concurrent.ConcurrentMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 1056
      StackMap locals: java.io.ObjectStreamClass$WeakClassKey java.lang.Boolean
      StackMap stack:
            aload 4 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 14
        13: .line 1057
            return
        14: .line 1059
      StackMap locals:
      StackMap stack:
            aload 2 /* sm */
            getstatic java.io.ObjectOutputStream.SUBCLASS_IMPLEMENTATION_PERMISSION:Ljava/io/SerializablePermission;
            invokevirtual java.lang.SecurityManager.checkPermission:(Ljava/security/Permission;)V
        15: .line 1060
            return
        end local 4 // java.lang.Boolean result
        end local 3 // java.io.ObjectStreamClass$WeakClassKey key
        end local 2 // java.lang.SecurityManager sm
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Ljava/io/ObjectOutputStream;
            1   16     1      cl  Ljava/lang/Class<*>;
            4   16     2      sm  Ljava/lang/SecurityManager;
            8   16     3     key  Ljava/io/ObjectStreamClass$WeakClassKey;
            9   16     4  result  Ljava/lang/Boolean;

  private static boolean auditSubclass(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class subcl
         0: .line 1069
            new java.io.ObjectOutputStream$1
            dup
            aload 0 /* subcl */
            invokespecial java.io.ObjectOutputStream$1.<init>:(Ljava/lang/Class;)V
         1: .line 1068
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 1 /* result */
        start local 1 // java.lang.Boolean result
         2: .line 1091
            aload 1 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 1 // java.lang.Boolean result
        end local 0 // java.lang.Class subcl
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0   subcl  Ljava/lang/Class<*>;
            2    3     1  result  Ljava/lang/Boolean;
    Signature: (Ljava/lang/Class<*>;)Z
    MethodParameters:
       Name  Flags
      subcl  final

  private void clear();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1098
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.clear:()V
         1: .line 1099
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            invokevirtual java.io.ObjectOutputStream$HandleTable.clear:()V
         2: .line 1100
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/io/ObjectOutputStream;

  private void writeObject0(java.lang.Object, boolean);
    descriptor: (Ljava/lang/Object;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // boolean unshared
         0: .line 1108
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            istore 3 /* oldMode */
        start local 3 // boolean oldMode
         1: .line 1109
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            iadd
            putfield java.io.ObjectOutputStream.depth:I
         2: .line 1113
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.lookup:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 1 /* obj */
            ifnonnull 7
         3: .line 1114
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         4: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
         5: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         6: .line 1115
            return
         7: .line 1116
      StackMap locals: int
      StackMap stack:
            iload 2 /* unshared */
            ifne 13
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 4 /* h */
        start local 4 // int h
         8: iconst_m1
            if_icmpeq 13
         9: .line 1117
            aload 0 /* this */
            iload 4 /* h */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
        10: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        11: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        12: .line 1118
            return
        end local 4 // int h
        13: .line 1119
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 18
        14: .line 1120
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Class
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClass:(Ljava/lang/Class;Z)V
        15: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        16: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        17: .line 1121
            return
        18: .line 1122
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.io.ObjectStreamClass
            ifeq 23
        19: .line 1123
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.ObjectStreamClass
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        20: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        21: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        22: .line 1124
            return
        23: .line 1128
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            astore 5 /* orig */
        start local 5 // java.lang.Object orig
        24: .line 1129
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 6 /* cl */
        start local 6 // java.lang.Class cl
        25: .line 1134
      StackMap locals: java.io.ObjectOutputStream java.lang.Object int int top java.lang.Object java.lang.Class
      StackMap stack:
            aload 6 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            astore 7 /* desc */
        start local 7 // java.io.ObjectStreamClass desc
        26: .line 1135
            aload 7 /* desc */
            invokevirtual java.io.ObjectStreamClass.hasWriteReplaceMethod:()Z
            ifeq 33
        27: .line 1136
            aload 7 /* desc */
            aload 1 /* obj */
            invokevirtual java.io.ObjectStreamClass.invokeWriteReplace:(Ljava/lang/Object;)Ljava/lang/Object;
            dup
            astore 1 /* obj */
            ifnull 33
        28: .line 1137
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            dup
            astore 8 /* repCl */
        start local 8 // java.lang.Class repCl
        29: aload 6 /* cl */
            if_acmpne 31
        end local 8 // java.lang.Class repCl
        30: .line 1139
            goto 33
        start local 8 // java.lang.Class repCl
        31: .line 1141
      StackMap locals: java.io.ObjectStreamClass java.lang.Class
      StackMap stack:
            aload 8 /* repCl */
            astore 6 /* cl */
        end local 8 // java.lang.Class repCl
        end local 7 // java.io.ObjectStreamClass desc
        32: .line 1131
            goto 25
        start local 7 // java.io.ObjectStreamClass desc
        33: .line 1143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.enableReplace:Z
            ifeq 39
        34: .line 1144
            aload 0 /* this */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream.replaceObject:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 8 /* rep */
        start local 8 // java.lang.Object rep
        35: .line 1145
            aload 8 /* rep */
            aload 1 /* obj */
            if_acmpeq 38
            aload 8 /* rep */
            ifnull 38
        36: .line 1146
            aload 8 /* rep */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 6 /* cl */
        37: .line 1147
            aload 6 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            astore 7 /* desc */
        38: .line 1149
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 8 /* rep */
            astore 1 /* obj */
        end local 8 // java.lang.Object rep
        39: .line 1153
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            aload 5 /* orig */
            if_acmpeq 62
        40: .line 1154
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.subs:Ljava/io/ObjectOutputStream$ReplaceTable;
            aload 5 /* orig */
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$ReplaceTable.assign:(Ljava/lang/Object;Ljava/lang/Object;)V
        41: .line 1155
            aload 1 /* obj */
            ifnonnull 46
        42: .line 1156
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
        43: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        44: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        45: .line 1157
            return
        46: .line 1158
      StackMap locals:
      StackMap stack:
            iload 2 /* unshared */
            ifne 52
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* obj */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 4 /* h */
        start local 4 // int h
        47: iconst_m1
            if_icmpeq 52
        48: .line 1159
            aload 0 /* this */
            iload 4 /* h */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
        49: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        50: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        51: .line 1160
            return
        end local 4 // int h
        52: .line 1161
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 57
        53: .line 1162
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Class
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClass:(Ljava/lang/Class;Z)V
        54: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        55: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        56: .line 1163
            return
        57: .line 1164
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.io.ObjectStreamClass
            ifeq 62
        58: .line 1165
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.ObjectStreamClass
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        59: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        60: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        61: .line 1166
            return
        62: .line 1171
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.String
            ifeq 65
        63: .line 1172
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.String
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
        64: .line 1173
            goto 83
      StackMap locals:
      StackMap stack:
        65: aload 6 /* cl */
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 68
        66: .line 1174
            aload 0 /* this */
            aload 1 /* obj */
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeArray:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
        67: .line 1175
            goto 83
      StackMap locals:
      StackMap stack:
        68: aload 1 /* obj */
            instanceof java.lang.Enum
            ifeq 71
        69: .line 1176
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.lang.Enum
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeEnum:(Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
        70: .line 1177
            goto 83
      StackMap locals:
      StackMap stack:
        71: aload 1 /* obj */
            instanceof java.io.Serializable
            ifeq 74
        72: .line 1178
            aload 0 /* this */
            aload 1 /* obj */
            aload 7 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeOrdinaryObject:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
        73: .line 1179
            goto 83
        74: .line 1180
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 78
        75: .line 1181
            new java.io.NotSerializableException
            dup
        76: .line 1182
            new java.lang.StringBuilder
            dup
            aload 6 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        77: .line 1181
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        78: .line 1184
      StackMap locals:
      StackMap stack:
            new java.io.NotSerializableException
            dup
            aload 6 /* cl */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokespecial java.io.NotSerializableException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // java.io.ObjectStreamClass desc
        end local 6 // java.lang.Class cl
        end local 5 // java.lang.Object orig
        79: .line 1187
      StackMap locals: java.io.ObjectOutputStream java.lang.Object int int
      StackMap stack: java.lang.Throwable
            astore 9
        80: .line 1188
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        81: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        82: .line 1190
            aload 9
            athrow
        83: .line 1188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            isub
            putfield java.io.ObjectOutputStream.depth:I
        84: .line 1189
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 3 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        85: .line 1191
            return
        end local 3 // boolean oldMode
        end local 2 // boolean unshared
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   86     0      this  Ljava/io/ObjectOutputStream;
            0   86     1       obj  Ljava/lang/Object;
            0   86     2  unshared  Z
            1   86     3   oldMode  Z
            8   13     4         h  I
           47   52     4         h  I
           24   79     5      orig  Ljava/lang/Object;
           25   79     6        cl  Ljava/lang/Class<*>;
           26   32     7      desc  Ljava/io/ObjectStreamClass;
           33   79     7      desc  Ljava/io/ObjectStreamClass;
           29   30     8     repCl  Ljava/lang/Class<*>;
           31   32     8     repCl  Ljava/lang/Class<*>;
           35   39     8       rep  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           2     4      79  any
           7    10      79  any
          13    15      79  any
          18    20      79  any
          23    43      79  any
          46    49      79  any
          52    54      79  any
          57    59      79  any
          62    79      79  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      obj       
      unshared  

  private void writeNull();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1197
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 112
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1198
            return
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException

  private void writeHandle(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // int handle
         0: .line 1204
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 113
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1205
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            ldc 8257536
            iload 1 /* handle */
            iadd
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         2: .line 1206
            return
        end local 1 // int handle
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/io/ObjectOutputStream;
            0    3     1  handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      handle  

  private void writeClass(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Class cl
        start local 2 // boolean unshared
         0: .line 1212
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 118
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1213
            aload 0 /* this */
            aload 1 /* cl */
            iconst_1
            invokestatic java.io.ObjectStreamClass.lookup:(Ljava/lang/Class;Z)Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         2: .line 1214
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         3: aload 1 /* cl */
      StackMap locals: java.io.ObjectOutputStream java.lang.Class int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Class
         4: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         5: .line 1215
            return
        end local 2 // boolean unshared
        end local 1 // java.lang.Class cl
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Ljava/io/ObjectOutputStream;
            0    6     1        cl  Ljava/lang/Class<*>;
            0    6     2  unshared  Z
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Class<*>;Z)V
    MethodParameters:
          Name  Flags
      cl        
      unshared  

  private void writeClassDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1224
            aload 1 /* desc */
            ifnonnull 3
         1: .line 1225
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.writeNull:()V
         2: .line 1226
            goto 11
      StackMap locals:
      StackMap stack:
         3: iload 2 /* unshared */
            ifne 7
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            aload 1 /* desc */
            invokevirtual java.io.ObjectOutputStream$HandleTable.lookup:(Ljava/lang/Object;)I
            dup
            istore 3 /* handle */
        start local 3 // int handle
         4: iconst_m1
            if_icmpeq 7
         5: .line 1227
            aload 0 /* this */
            iload 3 /* handle */
            invokevirtual java.io.ObjectOutputStream.writeHandle:(I)V
         6: .line 1228
            goto 11
        end local 3 // int handle
      StackMap locals:
      StackMap stack:
         7: aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.isProxy:()Z
            ifeq 10
         8: .line 1229
            aload 0 /* this */
            aload 1 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeProxyDesc:(Ljava/io/ObjectStreamClass;Z)V
         9: .line 1230
            goto 11
        10: .line 1231
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* desc */
            iload 2 /* unshared */
            invokevirtual java.io.ObjectOutputStream.writeNonProxyDesc:(Ljava/io/ObjectStreamClass;Z)V
        11: .line 1233
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Ljava/io/ObjectOutputStream;
            0   12     1      desc  Ljava/io/ObjectStreamClass;
            0   12     2  unshared  Z
            4    7     3    handle  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private boolean isCustomSubclass();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.io.ObjectOutputStream this
         0: .line 1237
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         1: .line 1238
            ldc Ljava/io/ObjectOutputStream;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
         2: .line 1237
            if_acmpeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/io/ObjectOutputStream;

  private void writeProxyDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1247
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 125
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1248
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         2: aload 1 /* desc */
      StackMap locals: java.io.ObjectOutputStream java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.io.ObjectStreamClass
         3: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         4: .line 1250
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         5: .line 1251
            aload 3 /* cl */
            invokevirtual java.lang.Class.getInterfaces:()[Ljava/lang/Class;
            astore 4 /* ifaces */
        start local 4 // java.lang.Class[] ifaces
         6: .line 1252
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 4 /* ifaces */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
         7: .line 1253
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: goto 11
         9: .line 1254
      StackMap locals: java.lang.Class java.lang.Class[] int
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 4 /* ifaces */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;)V
        10: .line 1253
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 4 /* ifaces */
            arraylength
            if_icmplt 9
        end local 5 // int i
        12: .line 1257
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        13: .line 1258
            aload 3 /* cl */
            ifnull 15
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.isCustomSubclass:()Z
            ifeq 15
        14: .line 1259
            aload 3 /* cl */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        15: .line 1261
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cl */
            invokevirtual java.io.ObjectOutputStream.annotateProxyClass:(Ljava/lang/Class;)V
        16: .line 1262
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        17: .line 1263
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        18: .line 1265
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        19: .line 1266
            return
        end local 4 // java.lang.Class[] ifaces
        end local 3 // java.lang.Class cl
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Ljava/io/ObjectOutputStream;
            0   20     1      desc  Ljava/io/ObjectStreamClass;
            0   20     2  unshared  Z
            5   20     3        cl  Ljava/lang/Class<*>;
            6   20     4    ifaces  [Ljava/lang/Class;
            8   12     5         i  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private void writeNonProxyDesc(java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.ObjectStreamClass desc
        start local 2 // boolean unshared
         0: .line 1275
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 114
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1276
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 2
            aconst_null
            goto 3
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         2: aload 1 /* desc */
      StackMap locals: java.io.ObjectOutputStream java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.io.ObjectStreamClass
         3: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         4: .line 1278
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            iconst_1
            if_icmpne 7
         5: .line 1280
            aload 1 /* desc */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.writeNonProxy:(Ljava/io/ObjectOutputStream;)V
         6: .line 1281
            goto 8
         7: .line 1282
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectOutputStream.writeClassDescriptor:(Ljava/io/ObjectStreamClass;)V
         8: .line 1285
      StackMap locals:
      StackMap stack:
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         9: .line 1286
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        10: .line 1287
            aload 3 /* cl */
            ifnull 12
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.isCustomSubclass:()Z
            ifeq 12
        11: .line 1288
            aload 3 /* cl */
            invokestatic sun.reflect.misc.ReflectUtil.checkPackageAccess:(Ljava/lang/Class;)V
        12: .line 1290
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cl */
            invokevirtual java.io.ObjectOutputStream.annotateClass:(Ljava/lang/Class;)V
        13: .line 1291
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        14: .line 1292
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        15: .line 1294
            aload 0 /* this */
            aload 1 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        16: .line 1295
            return
        end local 3 // java.lang.Class cl
        end local 2 // boolean unshared
        end local 1 // java.io.ObjectStreamClass desc
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   17     0      this  Ljava/io/ObjectOutputStream;
            0   17     1      desc  Ljava/io/ObjectStreamClass;
            0   17     2  unshared  Z
            9   17     3        cl  Ljava/lang/Class<*>;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      desc      
      unshared  

  private void writeString(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.String str
        start local 2 // boolean unshared
         0: .line 1302
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 2 /* unshared */
            ifeq 1
            aconst_null
            goto 2
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         1: aload 1 /* str */
      StackMap locals: java.io.ObjectOutputStream java.lang.String int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.String
         2: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         3: .line 1303
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.getUTFLength:(Ljava/lang/String;)J
            lstore 3 /* utflen */
        start local 3 // long utflen
         4: .line 1304
            lload 3 /* utflen */
            ldc 65535
            lcmp
            ifgt 8
         5: .line 1305
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 116
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         6: .line 1306
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            lload 3 /* utflen */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeUTF:(Ljava/lang/String;J)V
         7: .line 1307
            goto 10
         8: .line 1308
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 124
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         9: .line 1309
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 1 /* str */
            lload 3 /* utflen */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLongUTF:(Ljava/lang/String;J)V
        10: .line 1311
      StackMap locals:
      StackMap stack:
            return
        end local 3 // long utflen
        end local 2 // boolean unshared
        end local 1 // java.lang.String str
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljava/io/ObjectOutputStream;
            0   11     1       str  Ljava/lang/String;
            0   11     2  unshared  Z
            4   11     3    utflen  J
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      str       
      unshared  

  private void writeArray(java.lang.Object, java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object array
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1321
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 117
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1322
            aload 0 /* this */
            aload 2 /* desc */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         2: .line 1323
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         3: aload 1 /* array */
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Object
         4: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         5: .line 1325
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
            astore 4 /* ccl */
        start local 4 // java.lang.Class ccl
         6: .line 1326
            aload 4 /* ccl */
            invokevirtual java.lang.Class.isPrimitive:()Z
            ifeq 48
         7: .line 1327
            aload 4 /* ccl */
            getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
            if_acmpne 12
         8: .line 1328
            aload 1 /* array */
            checkcast int[]
            astore 5 /* ia */
        start local 5 // int[] ia
         9: .line 1329
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ia */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        10: .line 1330
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ia */
            iconst_0
            aload 5 /* ia */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInts:([III)V
        end local 5 // int[] ia
        11: .line 1331
            goto 80
      StackMap locals: java.lang.Class
      StackMap stack:
        12: aload 4 /* ccl */
            getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
            if_acmpne 17
        13: .line 1332
            aload 1 /* array */
            checkcast byte[]
            astore 5 /* ba */
        start local 5 // byte[] ba
        14: .line 1333
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ba */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        15: .line 1334
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ba */
            iconst_0
            aload 5 /* ba */
            arraylength
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
        end local 5 // byte[] ba
        16: .line 1335
            goto 80
      StackMap locals:
      StackMap stack:
        17: aload 4 /* ccl */
            getstatic java.lang.Long.TYPE:Ljava/lang/Class;
            if_acmpne 22
        18: .line 1336
            aload 1 /* array */
            checkcast long[]
            astore 5 /* ja */
        start local 5 // long[] ja
        19: .line 1337
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ja */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        20: .line 1338
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ja */
            iconst_0
            aload 5 /* ja */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeLongs:([JII)V
        end local 5 // long[] ja
        21: .line 1339
            goto 80
      StackMap locals:
      StackMap stack:
        22: aload 4 /* ccl */
            getstatic java.lang.Float.TYPE:Ljava/lang/Class;
            if_acmpne 27
        23: .line 1340
            aload 1 /* array */
            checkcast float[]
            astore 5 /* fa */
        start local 5 // float[] fa
        24: .line 1341
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* fa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        25: .line 1342
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* fa */
            iconst_0
            aload 5 /* fa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeFloats:([FII)V
        end local 5 // float[] fa
        26: .line 1343
            goto 80
      StackMap locals:
      StackMap stack:
        27: aload 4 /* ccl */
            getstatic java.lang.Double.TYPE:Ljava/lang/Class;
            if_acmpne 32
        28: .line 1344
            aload 1 /* array */
            checkcast double[]
            astore 5 /* da */
        start local 5 // double[] da
        29: .line 1345
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* da */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        30: .line 1346
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* da */
            iconst_0
            aload 5 /* da */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeDoubles:([DII)V
        end local 5 // double[] da
        31: .line 1347
            goto 80
      StackMap locals:
      StackMap stack:
        32: aload 4 /* ccl */
            getstatic java.lang.Short.TYPE:Ljava/lang/Class;
            if_acmpne 37
        33: .line 1348
            aload 1 /* array */
            checkcast short[]
            astore 5 /* sa */
        start local 5 // short[] sa
        34: .line 1349
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* sa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        35: .line 1350
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* sa */
            iconst_0
            aload 5 /* sa */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeShorts:([SII)V
        end local 5 // short[] sa
        36: .line 1351
            goto 80
      StackMap locals:
      StackMap stack:
        37: aload 4 /* ccl */
            getstatic java.lang.Character.TYPE:Ljava/lang/Class;
            if_acmpne 42
        38: .line 1352
            aload 1 /* array */
            checkcast char[]
            astore 5 /* ca */
        start local 5 // char[] ca
        39: .line 1353
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ca */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        40: .line 1354
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* ca */
            iconst_0
            aload 5 /* ca */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeChars:([CII)V
        end local 5 // char[] ca
        41: .line 1355
            goto 80
      StackMap locals:
      StackMap stack:
        42: aload 4 /* ccl */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            if_acmpne 47
        43: .line 1356
            aload 1 /* array */
            checkcast boolean[]
            astore 5 /* za */
        start local 5 // boolean[] za
        44: .line 1357
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* za */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        45: .line 1358
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 5 /* za */
            iconst_0
            aload 5 /* za */
            arraylength
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeBooleans:([ZII)V
        end local 5 // boolean[] za
        46: .line 1359
            goto 80
        47: .line 1360
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        48: .line 1363
      StackMap locals:
      StackMap stack:
            aload 1 /* array */
            checkcast java.lang.Object[]
            astore 5 /* objs */
        start local 5 // java.lang.Object[] objs
        49: .line 1364
            aload 5 /* objs */
            arraylength
            istore 6 /* len */
        start local 6 // int len
        50: .line 1365
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 6 /* len */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeInt:(I)V
        51: .line 1366
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 57
        52: .line 1367
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        53: .line 1368
            new java.lang.StringBuilder
            dup
            ldc "array (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* array */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        54: .line 1369
            ldc "\", size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 6 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        55: .line 1368
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        56: .line 1367
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        57: .line 1372
      StackMap locals: java.lang.Object[] int
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        58: goto 72
        59: .line 1373
      StackMap locals: int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 63
        60: .line 1374
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        61: .line 1375
            new java.lang.StringBuilder
            dup
            ldc "element of array (index: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        62: .line 1374
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        63: .line 1378
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* objs */
            iload 7 /* i */
            aaload
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
        64: .line 1379
            goto 69
      StackMap locals:
      StackMap stack: java.lang.Throwable
        65: astore 8
        66: .line 1380
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 68
        67: .line 1381
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        68: .line 1383
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        69: .line 1380
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 71
        70: .line 1381
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        71: .line 1372
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        72: iload 7 /* i */
            iload 6 /* len */
            if_icmplt 59
        end local 7 // int i
        73: .line 1385
            goto 78
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int
      StackMap stack: java.lang.Throwable
        74: astore 9
        75: .line 1386
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 77
        76: .line 1387
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        77: .line 1389
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int top top java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        78: .line 1386
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int java.lang.Class java.lang.Object[] int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 80
        79: .line 1387
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        end local 6 // int len
        end local 5 // java.lang.Object[] objs
        80: .line 1391
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class ccl
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object array
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   81     0      this  Ljava/io/ObjectOutputStream;
            0   81     1     array  Ljava/lang/Object;
            0   81     2      desc  Ljava/io/ObjectStreamClass;
            0   81     3  unshared  Z
            6   81     4       ccl  Ljava/lang/Class<*>;
            9   11     5        ia  [I
           14   16     5        ba  [B
           19   21     5        ja  [J
           24   26     5        fa  [F
           29   31     5        da  [D
           34   36     5        sa  [S
           39   41     5        ca  [C
           44   46     5        za  [Z
           49   80     5      objs  [Ljava/lang/Object;
           50   80     6       len  I
           58   73     7         i  I
      Exception table:
        from    to  target  type
          63    65      65  any
          57    74      74  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      array     
      desc      
      unshared  

  private void writeEnum(java.lang.Enum<?>, java.io.ObjectStreamClass, );
    descriptor: (Ljava/lang/Enum;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Enum en
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1401
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 126
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         1: .line 1402
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getSuperDesc:()Ljava/io/ObjectStreamClass;
            astore 4 /* sdesc */
        start local 4 // java.io.ObjectStreamClass sdesc
         2: .line 1403
            aload 0 /* this */
            aload 4 /* sdesc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            ldc Ljava/lang/Enum;
            if_acmpne 3
            aload 2 /* desc */
            goto 4
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream
         3: aload 4 /* sdesc */
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream java.io.ObjectStreamClass
         4: iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
         5: .line 1404
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
         6: aload 1 /* en */
      StackMap locals: java.io.ObjectOutputStream java.lang.Enum java.io.ObjectStreamClass int java.io.ObjectStreamClass
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Enum
         7: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
         8: .line 1405
            aload 0 /* this */
            aload 1 /* en */
            invokevirtual java.lang.Enum.name:()Ljava/lang/String;
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeString:(Ljava/lang/String;Z)V
         9: .line 1406
            return
        end local 4 // java.io.ObjectStreamClass sdesc
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Enum en
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Ljava/io/ObjectOutputStream;
            0   10     1        en  Ljava/lang/Enum<*>;
            0   10     2      desc  Ljava/io/ObjectStreamClass;
            0   10     3  unshared  Z
            2   10     4     sdesc  Ljava/io/ObjectStreamClass;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/Enum<*>;Ljava/io/ObjectStreamClass;Z)V
    MethodParameters:
          Name  Flags
      en        
      desc      
      unshared  

  private void writeOrdinaryObject(java.lang.Object, java.io.ObjectStreamClass, boolean);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // java.io.ObjectStreamClass desc
        start local 3 // boolean unshared
         0: .line 1418
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 8
         1: .line 1419
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
         2: .line 1420
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.depth:I
            iconst_1
            if_icmpne 3
            ldc "root "
            goto 4
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$DebugTraceInfoStack new 2 new 2
         3: ldc ""
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$DebugTraceInfoStack new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "object (class \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1421
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* obj */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1420
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1419
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
         8: .line 1424
      StackMap locals:
      StackMap stack:
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.checkSerialize:()V
         9: .line 1426
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 115
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        10: .line 1427
            aload 0 /* this */
            aload 2 /* desc */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeClassDesc:(Ljava/io/ObjectStreamClass;Z)V
        11: .line 1428
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.handles:Ljava/io/ObjectOutputStream$HandleTable;
            iload 3 /* unshared */
            ifeq 12
            aconst_null
            goto 13
      StackMap locals:
      StackMap stack: java.io.ObjectOutputStream$HandleTable
        12: aload 1 /* obj */
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass int
      StackMap stack: java.io.ObjectOutputStream$HandleTable java.lang.Object
        13: invokevirtual java.io.ObjectOutputStream$HandleTable.assign:(Ljava/lang/Object;)I
            pop
        14: .line 1429
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.isExternalizable:()Z
            ifeq 17
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.isProxy:()Z
            ifne 17
        15: .line 1430
            aload 0 /* this */
            aload 1 /* obj */
            checkcast java.io.Externalizable
            invokevirtual java.io.ObjectOutputStream.writeExternalData:(Ljava/io/Externalizable;)V
        16: .line 1431
            goto 23
        17: .line 1432
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            aload 2 /* desc */
            invokevirtual java.io.ObjectOutputStream.writeSerialData:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
        18: .line 1434
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 4
        20: .line 1435
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        21: .line 1436
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        22: .line 1438
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        23: .line 1435
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 25
        24: .line 1436
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        25: .line 1439
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean unshared
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   26     0      this  Ljava/io/ObjectOutputStream;
            0   26     1       obj  Ljava/lang/Object;
            0   26     2      desc  Ljava/io/ObjectStreamClass;
            0   26     3  unshared  Z
      Exception table:
        from    to  target  type
           8    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      obj       
      desc      
      unshared  

  private void writeExternalData(java.io.Externalizable);
    descriptor: (Ljava/io/Externalizable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.Externalizable obj
         0: .line 1446
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            astore 2 /* oldPut */
        start local 2 // java.io.ObjectOutputStream$PutFieldImpl oldPut
         1: .line 1447
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
         2: .line 1449
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 4
         3: .line 1450
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            ldc "writeExternal data"
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
         4: .line 1452
      StackMap locals: java.io.ObjectOutputStream$PutFieldImpl
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 3 /* oldContext */
        start local 3 // java.io.SerialCallbackContext oldContext
         5: .line 1454
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
         6: .line 1455
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.protocol:I
            iconst_1
            if_icmpne 9
         7: .line 1456
            aload 1 /* obj */
            aload 0 /* this */
            invokeinterface java.io.Externalizable.writeExternal:(Ljava/io/ObjectOutput;)V
         8: .line 1457
            goto 19
         9: .line 1458
      StackMap locals: java.io.SerialCallbackContext
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        10: .line 1459
            aload 1 /* obj */
            aload 0 /* this */
            invokeinterface java.io.Externalizable.writeExternal:(Ljava/io/ObjectOutput;)V
        11: .line 1460
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        12: .line 1461
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        13: .line 1463
            goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 4
        15: .line 1464
            aload 0 /* this */
            aload 3 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        16: .line 1465
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 18
        17: .line 1466
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        18: .line 1468
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4
            athrow
        19: .line 1464
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        20: .line 1465
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        21: .line 1466
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        22: .line 1470
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* oldPut */
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        23: .line 1471
            return
        end local 3 // java.io.SerialCallbackContext oldContext
        end local 2 // java.io.ObjectOutputStream$PutFieldImpl oldPut
        end local 1 // java.io.Externalizable obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Ljava/io/ObjectOutputStream;
            0   24     1         obj  Ljava/io/Externalizable;
            1   24     2      oldPut  Ljava/io/ObjectOutputStream$PutFieldImpl;
            5   24     3  oldContext  Ljava/io/SerialCallbackContext;
      Exception table:
        from    to  target  type
           5    14      14  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   

  private void writeSerialData(java.lang.Object, java.io.ObjectStreamClass);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // java.io.ObjectStreamClass desc
         0: .line 1480
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getClassDataLayout:()[Ljava/io/ObjectStreamClass$ClassDataSlot;
            astore 3 /* slots */
        start local 3 // java.io.ObjectStreamClass$ClassDataSlot[] slots
         1: .line 1481
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 34
         3: .line 1482
      StackMap locals: java.io.ObjectStreamClass$ClassDataSlot[] int
      StackMap stack:
            aload 3 /* slots */
            iload 4 /* i */
            aaload
            getfield java.io.ObjectStreamClass$ClassDataSlot.desc:Ljava/io/ObjectStreamClass;
            astore 5 /* slotDesc */
        start local 5 // java.io.ObjectStreamClass slotDesc
         4: .line 1483
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectStreamClass.hasWriteObjectMethod:()Z
            ifeq 32
         5: .line 1484
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
            astore 6 /* oldPut */
        start local 6 // java.io.ObjectOutputStream$PutFieldImpl oldPut
         6: .line 1485
            aload 0 /* this */
            aconst_null
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
         7: .line 1486
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            astore 7 /* oldContext */
        start local 7 // java.io.SerialCallbackContext oldContext
         8: .line 1488
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 14
         9: .line 1489
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        10: .line 1490
            new java.lang.StringBuilder
            dup
            ldc "custom writeObject data (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 1491
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1490
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 1489
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        14: .line 1494
      StackMap locals: java.io.ObjectStreamClass java.io.ObjectOutputStream$PutFieldImpl java.io.SerialCallbackContext
      StackMap stack:
            aload 0 /* this */
            new java.io.SerialCallbackContext
            dup
            aload 1 /* obj */
            aload 5 /* slotDesc */
            invokespecial java.io.SerialCallbackContext.<init>:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        15: .line 1495
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_1
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        16: .line 1496
            aload 5 /* slotDesc */
            aload 1 /* obj */
            aload 0 /* this */
            invokevirtual java.io.ObjectStreamClass.invokeWriteObject:(Ljava/lang/Object;Ljava/io/ObjectOutputStream;)V
        17: .line 1497
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        18: .line 1498
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 120
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
        19: .line 1499
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 8
        21: .line 1500
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            invokevirtual java.io.SerialCallbackContext.setUsed:()V
        22: .line 1501
            aload 0 /* this */
            aload 7 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        23: .line 1502
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 25
        24: .line 1503
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        25: .line 1505
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 8
            athrow
        26: .line 1500
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
            invokevirtual java.io.SerialCallbackContext.setUsed:()V
        27: .line 1501
            aload 0 /* this */
            aload 7 /* oldContext */
            putfield java.io.ObjectOutputStream.curContext:Ljava/io/SerialCallbackContext;
        28: .line 1502
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 30
        29: .line 1503
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        30: .line 1507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* oldPut */
            putfield java.io.ObjectOutputStream.curPut:Ljava/io/ObjectOutputStream$PutFieldImpl;
        end local 7 // java.io.SerialCallbackContext oldContext
        end local 6 // java.io.ObjectOutputStream$PutFieldImpl oldPut
        31: .line 1508
            goto 33
        32: .line 1509
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            aload 5 /* slotDesc */
            invokevirtual java.io.ObjectOutputStream.defaultWriteFields:(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
        end local 5 // java.io.ObjectStreamClass slotDesc
        33: .line 1481
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        34: iload 4 /* i */
            aload 3 /* slots */
            arraylength
            if_icmplt 3
        end local 4 // int i
        35: .line 1512
            return
        end local 3 // java.io.ObjectStreamClass$ClassDataSlot[] slots
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   36     0        this  Ljava/io/ObjectOutputStream;
            0   36     1         obj  Ljava/lang/Object;
            0   36     2        desc  Ljava/io/ObjectStreamClass;
            1   36     3       slots  [Ljava/io/ObjectStreamClass$ClassDataSlot;
            2   35     4           i  I
            4   33     5    slotDesc  Ljava/io/ObjectStreamClass;
            6   31     6      oldPut  Ljava/io/ObjectOutputStream$PutFieldImpl;
            8   31     7  oldContext  Ljava/io/SerialCallbackContext;
      Exception table:
        from    to  target  type
          14    20      20  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   
      desc  

  private void defaultWriteFields(java.lang.Object, java.io.ObjectStreamClass);
    descriptor: (Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.lang.Object obj
        start local 2 // java.io.ObjectStreamClass desc
         0: .line 1522
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.forClass:()Ljava/lang/Class;
            astore 3 /* cl */
        start local 3 // java.lang.Class cl
         1: .line 1523
            aload 3 /* cl */
            ifnull 3
            aload 1 /* obj */
            ifnull 3
            aload 3 /* cl */
            aload 1 /* obj */
            invokevirtual java.lang.Class.isInstance:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 1524
            new java.lang.ClassCastException
            dup
            invokespecial java.lang.ClassCastException.<init>:()V
            athrow
         3: .line 1527
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.checkDefaultSerialize:()V
         4: .line 1529
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getPrimDataSize:()I
            istore 4 /* primDataSize */
        start local 4 // int primDataSize
         5: .line 1530
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.primVals:[B
            ifnull 6
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.primVals:[B
            arraylength
            iload 4 /* primDataSize */
            if_icmpge 7
         6: .line 1531
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* primDataSize */
            newarray 8
            putfield java.io.ObjectOutputStream.primVals:[B
         7: .line 1533
      StackMap locals:
      StackMap stack:
            aload 2 /* desc */
            aload 1 /* obj */
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.primVals:[B
            invokevirtual java.io.ObjectStreamClass.getPrimFieldValues:(Ljava/lang/Object;[B)V
         8: .line 1534
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.primVals:[B
            iconst_0
            iload 4 /* primDataSize */
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.write:([BIIZ)V
         9: .line 1536
            aload 2 /* desc */
            iconst_0
            invokevirtual java.io.ObjectStreamClass.getFields:(Z)[Ljava/io/ObjectStreamField;
            astore 5 /* fields */
        start local 5 // java.io.ObjectStreamField[] fields
        10: .line 1537
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getNumObjFields:()I
            anewarray java.lang.Object
            astore 6 /* objVals */
        start local 6 // java.lang.Object[] objVals
        11: .line 1538
            aload 5 /* fields */
            arraylength
            aload 6 /* objVals */
            arraylength
            isub
            istore 7 /* numPrimFields */
        start local 7 // int numPrimFields
        12: .line 1539
            aload 2 /* desc */
            aload 1 /* obj */
            aload 6 /* objVals */
            invokevirtual java.io.ObjectStreamClass.getObjFieldValues:(Ljava/lang/Object;[Ljava/lang/Object;)V
        13: .line 1540
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        14: goto 33
        15: .line 1541
      StackMap locals: java.io.ObjectOutputStream java.lang.Object java.io.ObjectStreamClass java.lang.Class int java.io.ObjectStreamField[] java.lang.Object[] int int
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 22
        16: .line 1542
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
        17: .line 1543
            new java.lang.StringBuilder
            dup
            ldc "field (class \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* desc */
            invokevirtual java.io.ObjectStreamClass.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", name: \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        18: .line 1544
            aload 5 /* fields */
            iload 7 /* numPrimFields */
            iload 8 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\", type: \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        19: .line 1545
            aload 5 /* fields */
            iload 7 /* numPrimFields */
            iload 8 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.getType:()Ljava/lang/Class;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        20: .line 1543
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 1542
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.push:(Ljava/lang/String;)V
        22: .line 1548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* objVals */
            iload 8 /* i */
            aaload
        23: .line 1549
            aload 5 /* fields */
            iload 7 /* numPrimFields */
            iload 8 /* i */
            iadd
            aaload
            invokevirtual java.io.ObjectStreamField.isUnshared:()Z
        24: .line 1548
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
        25: .line 1550
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 9
        27: .line 1551
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 29
        28: .line 1552
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        29: .line 1554
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 9
            athrow
        30: .line 1551
      StackMap locals:
      StackMap stack:
            getstatic java.io.ObjectOutputStream.extendedDebugInfo:Z
            ifeq 32
        31: .line 1552
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.debugInfoStack:Ljava/io/ObjectOutputStream$DebugTraceInfoStack;
            invokevirtual java.io.ObjectOutputStream$DebugTraceInfoStack.pop:()V
        32: .line 1540
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 8 /* i */
            aload 6 /* objVals */
            arraylength
            if_icmplt 15
        end local 8 // int i
        34: .line 1556
            return
        end local 7 // int numPrimFields
        end local 6 // java.lang.Object[] objVals
        end local 5 // java.io.ObjectStreamField[] fields
        end local 4 // int primDataSize
        end local 3 // java.lang.Class cl
        end local 2 // java.io.ObjectStreamClass desc
        end local 1 // java.lang.Object obj
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   35     0           this  Ljava/io/ObjectOutputStream;
            0   35     1            obj  Ljava/lang/Object;
            0   35     2           desc  Ljava/io/ObjectStreamClass;
            1   35     3             cl  Ljava/lang/Class<*>;
            5   35     4   primDataSize  I
           10   35     5         fields  [Ljava/io/ObjectStreamField;
           11   35     6        objVals  [Ljava/lang/Object;
           12   35     7  numPrimFields  I
           14   34     8              i  I
      Exception table:
        from    to  target  type
          22    26      26  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      obj   
      desc  

  private void writeFatalException(java.io.IOException);
    descriptor: (Ljava/io/IOException;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.io.ObjectOutputStream this
        start local 1 // java.io.IOException ex
         0: .line 1573
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         1: .line 1574
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iconst_0
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            istore 2 /* oldMode */
        start local 2 // boolean oldMode
         2: .line 1576
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            bipush 123
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.writeByte:(I)V
         3: .line 1577
            aload 0 /* this */
            aload 1 /* ex */
            iconst_0
            invokevirtual java.io.ObjectOutputStream.writeObject0:(Ljava/lang/Object;Z)V
         4: .line 1578
            aload 0 /* this */
            invokevirtual java.io.ObjectOutputStream.clear:()V
         5: .line 1579
            goto 9
      StackMap locals: java.io.ObjectOutputStream java.io.IOException int
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 1580
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 2 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
         8: .line 1581
            aload 3
            athrow
         9: .line 1580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.io.ObjectOutputStream.bout:Ljava/io/ObjectOutputStream$BlockDataOutputStream;
            iload 2 /* oldMode */
            invokevirtual java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode:(Z)Z
            pop
        10: .line 1582
            return
        end local 2 // boolean oldMode
        end local 1 // java.io.IOException ex
        end local 0 // java.io.ObjectOutputStream this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Ljava/io/ObjectOutputStream;
            0   11     1       ex  Ljava/io/IOException;
            2   11     2  oldMode  Z
      Exception table:
        from    to  target  type
           2     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ex    

  private static native void floatsToBytes(float[], int, byte[], int, int);
    descriptor: ([FI[BII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      src      
      srcpos   
      dst      
      dstpos   
      nfloats  

  private static native void doublesToBytes(double[], int, byte[], int, int);
    descriptor: ([DI[BII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      src       
      srcpos    
      dst       
      dstpos    
      ndoubles  
}
SourceFile: "ObjectOutputStream.java"
NestMembers:
  java.io.ObjectOutputStream$1  java.io.ObjectOutputStream$BlockDataOutputStream  java.io.ObjectOutputStream$Caches  java.io.ObjectOutputStream$DebugTraceInfoStack  java.io.ObjectOutputStream$HandleTable  java.io.ObjectOutputStream$PutField  java.io.ObjectOutputStream$PutFieldImpl  java.io.ObjectOutputStream$ReplaceTable
InnerClasses:
  java.io.ObjectOutputStream$1
  private BlockDataOutputStream = java.io.ObjectOutputStream$BlockDataOutputStream of java.io.ObjectOutputStream
  private Caches = java.io.ObjectOutputStream$Caches of java.io.ObjectOutputStream
  private DebugTraceInfoStack = java.io.ObjectOutputStream$DebugTraceInfoStack of java.io.ObjectOutputStream
  private HandleTable = java.io.ObjectOutputStream$HandleTable of java.io.ObjectOutputStream
  public abstract PutField = java.io.ObjectOutputStream$PutField of java.io.ObjectOutputStream
  private PutFieldImpl = java.io.ObjectOutputStream$PutFieldImpl of java.io.ObjectOutputStream
  private ReplaceTable = java.io.ObjectOutputStream$ReplaceTable of java.io.ObjectOutputStream
  ClassDataSlot = java.io.ObjectStreamClass$ClassDataSlot of java.io.ObjectStreamClass
  WeakClassKey = java.io.ObjectStreamClass$WeakClassKey of java.io.ObjectStreamClass