public class com.sun.imageio.plugins.jpeg.JPEGImageWriter extends javax.imageio.ImageWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.jpeg.JPEGImageWriter
  super_class: javax.imageio.ImageWriter
{
  private boolean debug;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long structPointer;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.stream.ImageOutputStream ios;
    descriptor: Ljavax/imageio/stream/ImageOutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.Raster srcRas;
    descriptor: Ljava/awt/image/Raster;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.image.WritableRaster raster;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

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

  private java.awt.image.IndexColorModel indexCM;
    descriptor: Ljava/awt/image/IndexColorModel;
    flags: (0x0002) ACC_PRIVATE

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

  private java.awt.image.WritableRaster converted;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0002) ACC_PRIVATE

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

  private java.awt.image.ColorModel srcCM;
    descriptor: Ljava/awt/image/ColorModel;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<? extends java.awt.image.BufferedImage> thumbnails;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<+Ljava/awt/image/BufferedImage;>;

  private java.awt.color.ICC_Profile iccProfile;
    descriptor: Ljava/awt/color/ICC_Profile;
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private int[] srcBands;
    descriptor: [I
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.awt.image.ColorConvertOp convertOp;
    descriptor: Ljava/awt/image/ColorConvertOp;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGQTable[] streamQTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGQTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] streamDCHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] streamACHuffmanTables;
    descriptor: [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

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

  private com.sun.imageio.plugins.jpeg.JPEGMetadata metadata;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    flags: (0x0002) ACC_PRIVATE

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

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

  private java.lang.Object disposerReferent;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private sun.java2d.DisposerRecord disposerRecord;
    descriptor: Lsun/java2d/DisposerRecord;
    flags: (0x0002) ACC_PRIVATE

  protected static final int WARNING_DEST_IGNORED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  protected static final int WARNING_STREAM_METADATA_IGNORED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  protected static final int WARNING_DEST_METADATA_COMP_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  protected static final int WARNING_DEST_METADATA_JFIF_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  protected static final int WARNING_DEST_METADATA_ADOBE_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  protected static final int WARNING_IMAGE_METADATA_JFIF_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  protected static final int WARNING_IMAGE_METADATA_ADOBE_MISMATCH;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  protected static final int WARNING_METADATA_NOT_JPEG_FOR_RASTER;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  protected static final int WARNING_NO_BANDS_ON_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  protected static final int WARNING_ILLEGAL_THUMBNAIL;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  protected static final int WARNING_IGNORING_THUMBS;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  protected static final int WARNING_FORCING_JFIF;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  protected static final int WARNING_THUMB_CLIPPED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  protected static final int WARNING_METADATA_ADJUSTED_FOR_THUMB;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  protected static final int WARNING_NO_RGB_THUMB_AS_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  protected static final int WARNING_NO_GRAY_THUMB_AS_INDEXED;
    descriptor: I
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  private static final int MAX_WARNING;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  static final java.awt.Dimension[] preferredThumbSizes;
    descriptor: [Ljava/awt/Dimension;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private java.lang.Thread theThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

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

  private com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock cbLock;
    descriptor: Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=0, args_size=0
         0: .line 178
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$1
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$1.<init>:()V
         1: .line 177
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         2: .line 184
            ldc Ljavax/imageio/plugins/jpeg/JPEGQTable;
         3: .line 185
            ldc Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
         4: .line 184
            invokestatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.initWriterIDs:(Ljava/lang/Class;Ljava/lang/Class;)V
         5: .line 320
            iconst_2
            anewarray java.awt.Dimension
            dup
            iconst_0
            new java.awt.Dimension
            dup
            iconst_1
            iconst_1
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
            dup
            iconst_1
         6: .line 321
            new java.awt.Dimension
            dup
            sipush 255
            sipush 255
            invokespecial java.awt.Dimension.<init>:(II)V
            aastore
         7: .line 320
            putstatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.preferredThumbSizes:[Ljava/awt/Dimension;
         8: .line 321
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.imageio.spi.ImageWriterSpi);
    descriptor: (Ljavax/imageio/spi/ImageWriterSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.spi.ImageWriterSpi originator
         0: .line 191
            aload 0 /* this */
            aload 1 /* originator */
            invokespecial javax.imageio.ImageWriter.<init>:(Ljavax/imageio/spi/ImageWriterSpi;)V
         1: .line 72
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
         2: .line 80
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
         3: .line 84
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         4: .line 87
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
         5: .line 90
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
         6: .line 96
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
         7: .line 97
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
         8: .line 99
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
         9: .line 100
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
        10: .line 102
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        11: .line 103
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        12: .line 108
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
        13: .line 113
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
        14: .line 115
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
        15: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
        16: .line 117
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
        17: .line 118
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        18: .line 119
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
        19: .line 122
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
        20: .line 124
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertOp:Ljava/awt/image/ColorConvertOp;
        21: .line 126
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        22: .line 127
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        23: .line 128
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        24: .line 131
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
        25: .line 132
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
        26: .line 133
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
        27: .line 134
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        28: .line 135
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
        29: .line 136
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
        30: .line 137
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        31: .line 139
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
        32: .line 141
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        33: .line 144
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerReferent:Ljava/lang/Object;
        34: .line 1765
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        35: .line 1766
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        36: .line 1800
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock
            dup
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.<init>:()V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
        37: .line 192
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.initJPEGImageWriter:()J
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
        38: .line 193
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokespecial com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord.<init>:(J)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
        39: .line 194
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerReferent:Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
            invokestatic sun.java2d.Disposer.addRecord:(Ljava/lang/Object;Lsun/java2d/DisposerRecord;)V
        40: .line 195
            return
        end local 1 // javax.imageio.spi.ImageWriterSpi originator
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1  originator  Ljavax/imageio/spi/ImageWriterSpi;
    MethodParameters:
            Name  Flags
      originator  

  public void setOutput(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.lang.Object output
         0: .line 198
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 200
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 202
            aload 0 /* this */
            aload 1 /* output */
            invokespecial javax.imageio.ImageWriter.setOutput:(Ljava/lang/Object;)V
         3: .line 203
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetInternalState:()V
         4: .line 204
            aload 0 /* this */
            aload 1 /* output */
            checkcast javax.imageio.stream.ImageOutputStream
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         5: .line 206
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setDest:(J)V
         6: .line 207
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 2
         8: .line 208
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 209
            aload 2
            athrow
        10: .line 208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 210
            return
        end local 1 // java.lang.Object output
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   12     1  output  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     7       7  any
    MethodParameters:
        Name  Flags
      output  

  public javax.imageio.ImageWriteParam getDefaultWriteParam();
    descriptor: ()Ljavax/imageio/ImageWriteParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 213
            new javax.imageio.plugins.jpeg.JPEGImageWriteParam
            dup
            aconst_null
            invokespecial javax.imageio.plugins.jpeg.JPEGImageWriteParam.<init>:(Ljava/util/Locale;)V
            areturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public javax.imageio.metadata.IIOMetadata getDefaultStreamMetadata(javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageWriteParam param
         0: .line 217
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 219
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 1 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 3
         2: .line 221
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 219
            aload 3
            areturn
         4: .line 220
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 2
         5: .line 221
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 222
            aload 2
            athrow
        end local 1 // javax.imageio.ImageWriteParam param
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1  param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
       Name  Flags
      param  

  public javax.imageio.metadata.IIOMetadata getDefaultImageMetadata(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 228
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 230
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 1 /* imageType */
            aload 2 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 4
         2: .line 232
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 230
            aload 4
            areturn
         4: .line 231
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3
         5: .line 232
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 233
            aload 3
            athrow
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1  imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    7     2      param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
           Name  Flags
      imageType  
      param      

  public javax.imageio.metadata.IIOMetadata convertStreamMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 242
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 4
         1: .line 243
            aload 1 /* inData */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 3 /* jpegData */
        start local 3 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         2: .line 244
            aload 3 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifeq 4
         3: .line 245
            aload 1 /* inData */
            areturn
        end local 3 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         4: .line 248
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    5     1    inData  Ljavax/imageio/metadata/IIOMetadata;
            0    5     2     param  Ljavax/imageio/ImageWriteParam;
            2    4     3  jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    MethodParameters:
        Name  Flags
      inData  
      param   

  public javax.imageio.metadata.IIOMetadata convertImageMetadata(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageTypeSpecifier imageType
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 255
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 257
            aload 0 /* this */
            aload 1 /* inData */
            aload 2 /* imageType */
            aload 3 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadataOnThread:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            astore 5
         2: .line 259
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         3: .line 257
            aload 5
            areturn
         4: .line 258
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 4
         5: .line 259
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 260
            aload 4
            athrow
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.ImageTypeSpecifier imageType
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    7     1     inData  Ljavax/imageio/metadata/IIOMetadata;
            0    7     2  imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    7     3      param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     2       4  any
    MethodParameters:
           Name  Flags
      inData     
      imageType  
      param      

  private javax.imageio.metadata.IIOMetadata convertImageMetadataOnThread(javax.imageio.metadata.IIOMetadata, javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata inData
        start local 2 // javax.imageio.ImageTypeSpecifier imageType
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 268
            aload 1 /* inData */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 5
         1: .line 269
            aload 1 /* inData */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 4 /* jpegData */
        start local 4 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         2: .line 270
            aload 4 /* jpegData */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 4
         3: .line 271
            aload 1 /* inData */
            areturn
         4: .line 275
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aconst_null
            areturn
        end local 4 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
         5: .line 280
      StackMap locals:
      StackMap stack:
            aload 1 /* inData */
            invokevirtual javax.imageio.metadata.IIOMetadata.isStandardMetadataFormatSupported:()Z
            ifeq 19
         6: .line 282
            ldc "javax_imageio_1.0"
         7: .line 281
            astore 4 /* formatName */
        start local 4 // java.lang.String formatName
         8: .line 283
            aload 1 /* inData */
            aload 4 /* formatName */
            invokevirtual javax.imageio.metadata.IIOMetadata.getAsTree:(Ljava/lang/String;)Lorg/w3c/dom/Node;
            astore 5 /* tree */
        start local 5 // org.w3c.dom.Node tree
         9: .line 284
            aload 5 /* tree */
            ifnull 19
        10: .line 285
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 2 /* imageType */
        11: .line 286
            aload 3 /* param */
        12: .line 287
            aload 0 /* this */
        13: .line 285
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            astore 6 /* jpegData */
        start local 6 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
        14: .line 289
            aload 6 /* jpegData */
            aload 4 /* formatName */
            aload 5 /* tree */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.setFromTree:(Ljava/lang/String;Lorg/w3c/dom/Node;)V
        15: .line 290
            goto 18
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.ImageTypeSpecifier javax.imageio.ImageWriteParam java.lang.String org.w3c.dom.Node com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack: javax.imageio.metadata.IIOInvalidTreeException
        16: pop
        17: .line 293
            aconst_null
            areturn
        18: .line 296
      StackMap locals:
      StackMap stack:
            aload 6 /* jpegData */
            areturn
        end local 6 // com.sun.imageio.plugins.jpeg.JPEGMetadata jpegData
        end local 5 // org.w3c.dom.Node tree
        end local 4 // java.lang.String formatName
        19: .line 299
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.ImageTypeSpecifier imageType
        end local 1 // javax.imageio.metadata.IIOMetadata inData
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   20     1      inData  Ljavax/imageio/metadata/IIOMetadata;
            0   20     2   imageType  Ljavax/imageio/ImageTypeSpecifier;
            0   20     3       param  Ljavax/imageio/ImageWriteParam;
            2    5     4    jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            8   19     4  formatName  Ljava/lang/String;
            9   19     5        tree  Lorg/w3c/dom/Node;
           14   19     6    jpegData  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
      Exception table:
        from    to  target  type
          14    15      16  Class javax.imageio.metadata.IIOInvalidTreeException
    MethodParameters:
           Name  Flags
      inData     
      imageType  
      param      

  public int getNumThumbnailsSupported(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 307
            aload 1 /* imageType */
            ifnonnull 2
            aload 4 /* imageMetadata */
            ifnonnull 2
         1: .line 310
            iconst_m1
            ireturn
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* imageType */
            aload 2 /* param */
            aload 3 /* streamMetadata */
            aload 4 /* imageMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.jfifOK:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
            ifeq 4
         3: .line 315
            ldc 2147483647
            ireturn
         4: .line 317
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    5     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    5     2           param  Ljavax/imageio/ImageWriteParam;
            0    5     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    5     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  public java.awt.Dimension[] getPreferredThumbnailSizes(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)[Ljava/awt/Dimension;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 327
            aload 0 /* this */
            aload 1 /* imageType */
            aload 2 /* param */
            aload 3 /* streamMetadata */
            aload 4 /* imageMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.jfifOK:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
            ifeq 2
         1: .line 328
            getstatic com.sun.imageio.plugins.jpeg.JPEGImageWriter.preferredThumbSizes:[Ljava/awt/Dimension;
            invokevirtual java.awt.Dimension[].clone:()Ljava/lang/Object;
            checkcast java.awt.Dimension[]
            areturn
         2: .line 330
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    3     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0    3     2           param  Ljavax/imageio/ImageWriteParam;
            0    3     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    3     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  private boolean jfifOK(javax.imageio.ImageTypeSpecifier, javax.imageio.ImageWriteParam, javax.imageio.metadata.IIOMetadata, javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/metadata/IIOMetadata;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier imageType
        start local 2 // javax.imageio.ImageWriteParam param
        start local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
         0: .line 338
            aload 1 /* imageType */
            ifnull 3
         1: .line 339
            aload 1 /* imageType */
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 3
         2: .line 340
            iconst_0
            ireturn
         3: .line 342
      StackMap locals:
      StackMap stack:
            aload 4 /* imageMetadata */
            ifnull 16
         4: .line 343
            aconst_null
            astore 5 /* metadata */
        start local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
         5: .line 344
            aload 4 /* imageMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 8
         6: .line 345
            aload 4 /* imageMetadata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 5 /* metadata */
         7: .line 346
            goto 12
         8: .line 347
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aload 0 /* this */
            aload 4 /* imageMetadata */
         9: .line 348
            aload 1 /* imageType */
        10: .line 349
            aload 2 /* param */
        11: .line 347
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadata:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 5 /* metadata */
        12: .line 352
      StackMap locals:
      StackMap stack:
            aload 5 /* metadata */
        13: .line 353
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
        14: .line 352
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnonnull 16
        15: .line 354
            iconst_0
            ireturn
        end local 5 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        16: .line 357
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // javax.imageio.metadata.IIOMetadata imageMetadata
        end local 3 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.ImageTypeSpecifier imageType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   17     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   17     1       imageType  Ljavax/imageio/ImageTypeSpecifier;
            0   17     2           param  Ljavax/imageio/ImageWriteParam;
            0   17     3  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0   17     4   imageMetadata  Ljavax/imageio/metadata/IIOMetadata;
            5   16     5        metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    MethodParameters:
                Name  Flags
      imageType       
      param           
      streamMetadata  
      imageMetadata   

  public boolean canWriteRasters();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 361
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void write(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 2 // javax.imageio.IIOImage image
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 367
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 369
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 371
            aload 0 /* this */
            aload 1 /* streamMetadata */
            aload 2 /* image */
            aload 3 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeOnThread:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
         3: .line 372
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 4
         5: .line 373
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 374
            aload 4
            athrow
         7: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 375
            return
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.IIOImage image
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    9     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0    9     2           image  Ljavax/imageio/IIOImage;
            0    9     3           param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  
      image           
      param           

  private void writeOnThread(javax.imageio.metadata.IIOMetadata, javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=28, locals=52, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        start local 2 // javax.imageio.IIOImage image
        start local 3 // javax.imageio.ImageWriteParam param
         0: .line 381
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 382
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 385
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            ifnonnull 4
         3: .line 386
            new java.lang.IllegalArgumentException
            dup
            ldc "image is null!"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 390
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 6
         5: .line 391
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         6: .line 395
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.hasRaster:()Z
            istore 4 /* rasterOnly */
        start local 4 // boolean rasterOnly
         7: .line 397
            aconst_null
            astore 5 /* rimage */
        start local 5 // java.awt.image.RenderedImage rimage
         8: .line 398
            iload 4 /* rasterOnly */
            ifeq 11
         9: .line 399
            aload 0 /* this */
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRaster:()Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        10: .line 400
            goto 32
        11: .line 401
      StackMap locals: int java.awt.image.RenderedImage
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getRenderedImage:()Ljava/awt/image/RenderedImage;
            astore 5 /* rimage */
        12: .line 402
            aload 5 /* rimage */
            instanceof java.awt.image.BufferedImage
            ifeq 15
        13: .line 404
            aload 0 /* this */
            aload 5 /* rimage */
            checkcast java.awt.image.BufferedImage
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        14: .line 405
            goto 32
      StackMap locals:
      StackMap stack:
        15: aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumXTiles:()I
            iconst_1
            if_icmpne 31
        16: .line 406
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getNumYTiles:()I
            iconst_1
            if_icmpne 31
        17: .line 409
            aload 0 /* this */
            aload 5 /* rimage */
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileX:()I
        18: .line 410
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getMinTileY:()I
        19: .line 409
            invokeinterface java.awt.image.RenderedImage.getTile:(II)Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        20: .line 414
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getWidth:()I
            if_icmpne 22
        21: .line 415
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getHeight:()I
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getHeight:()I
            if_icmpeq 32
        22: .line 417
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
        23: .line 418
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        24: .line 419
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getWidth:()I
        25: .line 420
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getHeight:()I
        26: .line 421
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
        27: .line 422
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
        28: .line 423
            aconst_null
        29: .line 417
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        30: .line 425
            goto 32
        31: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getData:()Ljava/awt/image/Raster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
        32: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getNumBands:()I
            istore 6 /* numSrcBands */
        start local 6 // int numSrcBands
        33: .line 435
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        34: .line 436
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
        35: .line 437
            aconst_null
            astore 7 /* cm */
        start local 7 // java.awt.image.ColorModel cm
        36: .line 438
            aconst_null
            astore 8 /* cs */
        start local 8 // java.awt.color.ColorSpace cs
        37: .line 439
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        38: .line 440
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        39: .line 441
            iload 4 /* rasterOnly */
            ifne 50
        40: .line 442
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            astore 7 /* cm */
        41: .line 443
            aload 7 /* cm */
            ifnull 50
        42: .line 444
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
        43: .line 445
            aload 7 /* cm */
            instanceof java.awt.image.IndexColorModel
            ifeq 47
        44: .line 446
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
        45: .line 447
            aload 0 /* this */
            aload 7 /* cm */
            checkcast java.awt.image.IndexColorModel
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
        46: .line 448
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.getNumComponents:()I
            istore 6 /* numSrcBands */
        47: .line 450
      StackMap locals: int java.awt.image.ColorModel java.awt.color.ColorSpace
      StackMap stack:
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.isAlphaPremultiplied:()Z
            ifeq 50
        48: .line 451
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
        49: .line 452
            aload 0 /* this */
            aload 7 /* cm */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
        50: .line 457
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 6 /* numSrcBands */
            iconst_1
            isub
            aaload
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        51: .line 458
            iload 6 /* numSrcBands */
            istore 9 /* numBandsUsed */
        start local 9 // int numBandsUsed
        52: .line 461
            aload 3 /* param */
            ifnull 64
        53: .line 462
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceBands:()[I
            astore 10 /* sBands */
        start local 10 // int[] sBands
        54: .line 463
            aload 10 /* sBands */
            ifnull 64
        55: .line 464
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 58
        56: .line 465
            aload 0 /* this */
            bipush 8
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
        57: .line 466
            goto 64
        58: .line 467
      StackMap locals: int int[]
      StackMap stack:
            aload 0 /* this */
            aload 10 /* sBands */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        59: .line 468
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
            arraylength
            istore 9 /* numBandsUsed */
        60: .line 469
            iload 9 /* numBandsUsed */
            iload 6 /* numSrcBands */
            if_icmple 64
        61: .line 470
            new javax.imageio.IIOException
            dup
        62: .line 471
            ldc "ImageWriteParam specifies too many source bands"
        63: .line 470
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 10 // int[] sBands
        64: .line 477
      StackMap locals:
      StackMap stack:
            iload 9 /* numBandsUsed */
            iload 6 /* numSrcBands */
            if_icmpeq 65
            iconst_1
            goto 66
      StackMap locals:
      StackMap stack:
        65: iconst_0
      StackMap locals:
      StackMap stack: int
        66: istore 10 /* usingBandSubset */
        start local 10 // boolean usingBandSubset
        67: .line 478
            iload 4 /* rasterOnly */
            ifne 68
            iload 10 /* usingBandSubset */
            ifne 68
            iconst_1
            goto 69
      StackMap locals: int
      StackMap stack:
        68: iconst_0
      StackMap locals:
      StackMap stack: int
        69: istore 11 /* fullImage */
        start local 11 // boolean fullImage
        70: .line 480
            aconst_null
            astore 12 /* bandSizes */
        start local 12 // int[] bandSizes
        71: .line 481
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifne 82
        72: .line 482
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getSampleSize:()[I
            astore 12 /* bandSizes */
        73: .line 484
            iload 10 /* usingBandSubset */
            ifeq 89
        74: .line 485
            iload 9 /* numBandsUsed */
            newarray 10
            astore 13 /* temp */
        start local 13 // int[] temp
        75: .line 486
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        76: goto 79
        77: .line 487
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] int[] int
      StackMap stack:
            aload 13 /* temp */
            iload 14 /* i */
            aload 12 /* bandSizes */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
            iload 14 /* i */
            iaload
            iaload
            iastore
        78: .line 486
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        79: iload 14 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 77
        end local 14 // int i
        80: .line 489
            aload 13 /* temp */
            astore 12 /* bandSizes */
        end local 13 // int[] temp
        81: .line 491
            goto 89
        82: .line 492
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getSampleModel:()Ljava/awt/image/SampleModel;
            invokevirtual java.awt.image.SampleModel.getSampleSize:()[I
            astore 13 /* tempSize */
        start local 13 // int[] tempSize
        83: .line 493
            iload 6 /* numSrcBands */
            newarray 10
            astore 12 /* bandSizes */
        84: .line 494
            iconst_0
            istore 14 /* i */
        start local 14 // int i
        85: goto 88
        86: .line 495
      StackMap locals: int[] int
      StackMap stack:
            aload 12 /* bandSizes */
            iload 14 /* i */
            aload 13 /* tempSize */
            iconst_0
            iaload
            iastore
        87: .line 494
            iinc 14 /* i */ 1
      StackMap locals:
      StackMap stack:
        88: iload 14 /* i */
            iload 6 /* numSrcBands */
            if_icmplt 86
        end local 14 // int i
        end local 13 // int[] tempSize
        89: .line 499
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        90: goto 96
        91: .line 504
      StackMap locals: int
      StackMap stack:
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            ifle 92
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            bipush 8
            if_icmple 93
        92: .line 505
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Illegal band size: should be 0 < size <= 8"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        93: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 95
        94: .line 513
            aload 12 /* bandSizes */
            iload 13 /* i */
            bipush 8
            iastore
        95: .line 499
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        96: iload 13 /* i */
            aload 12 /* bandSizes */
            arraylength
            if_icmplt 91
        end local 13 // int i
        97: .line 517
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 109
        98: .line 518
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "numSrcBands is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* numSrcBands */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        99: .line 519
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "numBandsUsed is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 9 /* numBandsUsed */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       100: .line 520
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "usingBandSubset is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 10 /* usingBandSubset */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       101: .line 521
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "fullImage is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 11 /* fullImage */
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       102: .line 522
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Band sizes:"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       103: .line 523
            iconst_0
            istore 13 /* i */
        start local 13 // int i
       104: goto 107
       105: .line 524
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 12 /* bandSizes */
            iload 13 /* i */
            iaload
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
       106: .line 523
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
       107: iload 13 /* i */
            aload 12 /* bandSizes */
            arraylength
            if_icmplt 105
        end local 13 // int i
       108: .line 526
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
       109: .line 530
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 13 /* destType */
        start local 13 // javax.imageio.ImageTypeSpecifier destType
       110: .line 531
            aload 3 /* param */
            ifnull 115
       111: .line 532
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getDestinationType:()Ljavax/imageio/ImageTypeSpecifier;
            astore 13 /* destType */
       112: .line 534
            iload 11 /* fullImage */
            ifeq 115
            aload 13 /* destType */
            ifnull 115
       113: .line 535
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       114: .line 536
            aconst_null
            astore 13 /* destType */
       115: .line 542
      StackMap locals: javax.imageio.ImageTypeSpecifier
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinX:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       116: .line 543
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getMinY:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       117: .line 544
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getWidth:()I
            istore 14 /* imageWidth */
        start local 14 // int imageWidth
       118: .line 545
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            invokevirtual java.awt.image.Raster.getHeight:()I
            istore 15 /* imageHeight */
        start local 15 // int imageHeight
       119: .line 546
            aload 0 /* this */
            iload 14 /* imageWidth */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       120: .line 547
            aload 0 /* this */
            iload 15 /* imageHeight */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       121: .line 548
            iconst_1
            istore 16 /* periodX */
        start local 16 // int periodX
       122: .line 549
            iconst_1
            istore 17 /* periodY */
        start local 17 // int periodY
       123: .line 550
            iconst_0
            istore 18 /* gridX */
        start local 18 // int gridX
       124: .line 551
            iconst_0
            istore 19 /* gridY */
        start local 19 // int gridY
       125: .line 552
            aconst_null
            astore 20 /* qTables */
        start local 20 // javax.imageio.plugins.jpeg.JPEGQTable[] qTables
       126: .line 553
            aconst_null
            astore 21 /* DCHuffmanTables */
        start local 21 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables
       127: .line 554
            aconst_null
            astore 22 /* ACHuffmanTables */
        start local 22 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables
       128: .line 555
            iconst_0
            istore 23 /* optimizeHuffman */
        start local 23 // boolean optimizeHuffman
       129: .line 556
            aconst_null
            astore 24 /* jparam */
        start local 24 // javax.imageio.plugins.jpeg.JPEGImageWriteParam jparam
       130: .line 557
            iconst_0
            istore 25 /* progressiveMode */
        start local 25 // int progressiveMode
       131: .line 559
            aload 3 /* param */
            ifnull 171
       132: .line 561
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceRegion:()Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
        start local 26 // java.awt.Rectangle sourceRegion
       133: .line 562
            aload 26 /* sourceRegion */
            ifnull 144
       134: .line 563
            new java.awt.Rectangle
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       135: .line 564
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       136: .line 565
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       137: .line 566
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       138: .line 563
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            astore 27 /* imageBounds */
        start local 27 // java.awt.Rectangle imageBounds
       139: .line 567
            aload 26 /* sourceRegion */
            aload 27 /* imageBounds */
            invokevirtual java.awt.Rectangle.intersection:(Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
            astore 26 /* sourceRegion */
       140: .line 568
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.x:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       141: .line 569
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.y:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       142: .line 570
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.width:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       143: .line 571
            aload 0 /* this */
            aload 26 /* sourceRegion */
            getfield java.awt.Rectangle.height:I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
        end local 27 // java.awt.Rectangle imageBounds
       144: .line 574
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int java.awt.Rectangle
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            iadd
            iload 14 /* imageWidth */
            if_icmple 146
       145: .line 575
            aload 0 /* this */
            iload 14 /* imageWidth */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       146: .line 577
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iadd
            iload 15 /* imageHeight */
            if_icmple 148
       147: .line 578
            aload 0 /* this */
            iload 15 /* imageHeight */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       148: .line 581
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceXSubsampling:()I
            istore 16 /* periodX */
       149: .line 582
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSourceYSubsampling:()I
            istore 17 /* periodY */
       150: .line 583
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingXOffset:()I
            istore 18 /* gridX */
       151: .line 584
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getSubsamplingYOffset:()I
            istore 19 /* gridY */
       152: .line 586
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionMode:()I
            tableswitch { // 0 - 2
                    0: 153
                    1: 164
                    2: 154
              default: 167
          }
       153: .line 588
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "JPEG compression cannot be disabled"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
       154: .line 590
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getCompressionQuality:()F
            fstore 27 /* quality */
        start local 27 // float quality
       155: .line 591
            fload 27 /* quality */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.convertToLinearQuality:(F)F
            fstore 27 /* quality */
       156: .line 592
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       157: .line 593
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       158: .line 594
            fload 27 /* quality */
            iconst_1
       159: .line 593
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       160: .line 595
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
       161: .line 596
            fload 27 /* quality */
            iconst_1
       162: .line 595
            invokevirtual javax.imageio.plugins.jpeg.JPEGQTable.getScaledInstance:(FZ)Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       163: .line 597
            goto 167
        end local 27 // float quality
       164: .line 599
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 20 /* qTables */
       165: .line 600
            aload 20 /* qTables */
            iconst_0
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K1Div2Luminance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       166: .line 601
            aload 20 /* qTables */
            iconst_1
            getstatic javax.imageio.plugins.jpeg.JPEGQTable.K2Div2Chrominance:Ljavax/imageio/plugins/jpeg/JPEGQTable;
            aastore
       167: .line 606
      StackMap locals:
      StackMap stack:
            aload 3 /* param */
            invokevirtual javax.imageio.ImageWriteParam.getProgressiveMode:()I
            istore 25 /* progressiveMode */
       168: .line 608
            aload 3 /* param */
            instanceof javax.imageio.plugins.jpeg.JPEGImageWriteParam
            ifeq 171
       169: .line 609
            aload 3 /* param */
            checkcast javax.imageio.plugins.jpeg.JPEGImageWriteParam
            astore 24 /* jparam */
       170: .line 610
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getOptimizeHuffmanTables:()Z
            istore 23 /* optimizeHuffman */
        end local 26 // java.awt.Rectangle sourceRegion
       171: .line 615
      StackMap locals:
      StackMap stack:
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getMetadata:()Ljavax/imageio/metadata/IIOMetadata;
            astore 26 /* mdata */
        start local 26 // javax.imageio.metadata.IIOMetadata mdata
       172: .line 616
            aload 26 /* mdata */
            ifnull 190
       173: .line 617
            aload 26 /* mdata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 180
       174: .line 618
            aload 0 /* this */
            aload 26 /* mdata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       175: .line 619
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 190
       176: .line 620
            getstatic java.lang.System.out:Ljava/io/PrintStream;
       177: .line 621
            ldc "We have metadata, and it's JPEG metadata"
       178: .line 620
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       179: .line 623
            goto 190
       180: .line 624
      StackMap locals: javax.imageio.metadata.IIOMetadata
      StackMap stack:
            iload 4 /* rasterOnly */
            ifne 189
       181: .line 625
            aload 13 /* destType */
            astore 27 /* type */
        start local 27 // javax.imageio.ImageTypeSpecifier type
       182: .line 626
            aload 27 /* type */
            ifnonnull 184
       183: .line 627
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
            astore 27 /* type */
       184: .line 629
      StackMap locals: javax.imageio.ImageTypeSpecifier
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 26 /* mdata */
       185: .line 630
            aload 27 /* type */
       186: .line 631
            aload 3 /* param */
       187: .line 629
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertImageMetadata:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;)Ljavax/imageio/metadata/IIOMetadata;
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
        end local 27 // javax.imageio.ImageTypeSpecifier type
       188: .line 632
            goto 190
       189: .line 633
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 7
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       190: .line 640
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       191: .line 641
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
       192: .line 642
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       193: .line 643
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       194: .line 644
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       195: .line 647
            iconst_0
            istore 27 /* inCsType */
        start local 27 // int inCsType
       196: .line 648
            iconst_0
            istore 28 /* outCsType */
        start local 28 // int outCsType
       197: .line 650
            aconst_null
            astore 29 /* jfif */
        start local 29 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
       198: .line 651
            aconst_null
            astore 30 /* adobe */
        start local 30 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
       199: .line 652
            aconst_null
            astore 31 /* sof */
        start local 31 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
       200: .line 654
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 210
       201: .line 655
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       202: .line 656
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       203: .line 655
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
            astore 29 /* jfif */
       204: .line 657
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       205: .line 658
            ldc Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
            iconst_1
       206: .line 657
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.AdobeMarkerSegment
            astore 30 /* adobe */
       207: .line 659
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       208: .line 660
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       209: .line 659
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.SOFMarkerSegment
            astore 31 /* sof */
       210: .line 663
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       211: .line 664
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
       212: .line 665
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
       213: .line 667
            aload 13 /* destType */
            ifnull 240
       214: .line 668
            iload 9 /* numBandsUsed */
            aload 13 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getNumBands:()I
            if_icmpeq 218
       215: .line 669
            new javax.imageio.IIOException
            dup
       216: .line 670
            ldc "Number of source bands != number of destination bands"
       217: .line 669
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
       218: .line 672
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
       219: .line 674
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 227
       220: .line 675
            aload 0 /* this */
            aload 31 /* sof */
            iload 9 /* numBandsUsed */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkSOFBands:(Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
       221: .line 677
            aload 0 /* this */
            aload 29 /* jfif */
            aload 13 /* destType */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkJFIF:(Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
       222: .line 679
            aload 29 /* jfif */
            ifnull 225
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
            ifne 225
       223: .line 680
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 225
       224: .line 681
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       225: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 30 /* adobe */
            aload 13 /* destType */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkAdobe:(Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
       226: .line 686
            goto 237
       227: .line 688
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifeq 232
       228: .line 689
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
       229: .line 691
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 236
       230: .line 692
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       231: .line 694
            goto 236
       232: .line 695
      StackMap locals:
      StackMap stack:
            aload 13 /* destType */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.transformForType:(Ljavax/imageio/ImageTypeSpecifier;Z)I
            istore 32 /* transform */
        start local 32 // int transform
       233: .line 696
            iload 32 /* transform */
            iconst_m1
            if_icmpeq 236
       234: .line 697
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
       235: .line 698
            aload 0 /* this */
            iload 32 /* transform */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        end local 32 // int transform
       236: .line 702
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            aload 13 /* destType */
            aconst_null
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       237: .line 704
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 13 /* destType */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljavax/imageio/ImageTypeSpecifier;)I
            istore 27 /* inCsType */
       238: .line 705
            aload 0 /* this */
            aload 13 /* destType */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljavax/imageio/ImageTypeSpecifier;)I
            istore 28 /* outCsType */
       239: .line 706
            goto 307
       240: .line 707
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 254
       241: .line 708
            iload 11 /* fullImage */
            ifeq 307
       242: .line 710
            aload 0 /* this */
            new com.sun.imageio.plugins.jpeg.JPEGMetadata
            dup
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
       243: .line 711
            aload 3 /* param */
            aload 0 /* this */
            invokespecial com.sun.imageio.plugins.jpeg.JPEGMetadata.<init>:(Ljavax/imageio/ImageTypeSpecifier;Ljavax/imageio/ImageWriteParam;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
       244: .line 710
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       245: .line 712
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       246: .line 713
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       247: .line 712
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            ifnull 251
       248: .line 714
            aload 5 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 8 /* cs */
       249: .line 715
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifeq 251
       250: .line 716
            aload 0 /* this */
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       251: .line 720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/RenderedImage;)I
            istore 27 /* inCsType */
       252: .line 721
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/RenderedImage;)I
            istore 28 /* outCsType */
       253: .line 725
            goto 307
       254: .line 726
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 31 /* sof */
            iload 9 /* numBandsUsed */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.checkSOFBands:(Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
       255: .line 727
            iload 11 /* fullImage */
            ifeq 307
       256: .line 731
            new javax.imageio.ImageTypeSpecifier
            aload 5 /* rimage */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/RenderedImage;)V
       257: .line 733
            aload 0 /* this */
            aload 5 /* rimage */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/RenderedImage;)I
            istore 27 /* inCsType */
       258: .line 735
            aload 7 /* cm */
            ifnull 307
       259: .line 736
            aload 7 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            istore 32 /* alpha */
        start local 32 // boolean alpha
       260: .line 737
            aload 8 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 5 - 6
                    5: 276
                    6: 261
              default: 307
          }
       261: .line 739
      StackMap locals: int
      StackMap stack:
            iload 32 /* alpha */
            ifne 264
       262: .line 740
            iconst_1
            istore 28 /* outCsType */
       263: .line 741
            goto 269
       264: .line 742
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 269
       265: .line 743
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
       266: .line 744
            aload 0 /* this */
       267: .line 745
            iconst_5
       268: .line 744
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       269: .line 749
      StackMap locals:
      StackMap stack:
            aload 30 /* adobe */
            ifnull 307
       270: .line 750
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            ifeq 307
       271: .line 751
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       272: .line 752
            aload 0 /* this */
       273: .line 753
            bipush 6
       274: .line 752
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       275: .line 755
            goto 307
       276: .line 757
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnull 285
       277: .line 758
            iconst_3
            istore 28 /* outCsType */
       278: .line 759
            aload 8 /* cs */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isNonStandardICC:(Ljava/awt/color/ColorSpace;)Z
            ifne 281
       279: .line 760
            aload 8 /* cs */
            instanceof java.awt.color.ICC_ColorSpace
            ifeq 307
       280: .line 761
            aload 29 /* jfif */
            getfield com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.iccSegment:Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment$ICCMarkerSegment;
            ifnull 307
       281: .line 762
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       282: .line 763
            aload 8 /* cs */
            checkcast java.awt.color.ICC_ColorSpace
            invokevirtual java.awt.color.ICC_ColorSpace.getProfile:()Ljava/awt/color/ICC_Profile;
       283: .line 762
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
       284: .line 765
            goto 307
      StackMap locals:
      StackMap stack:
       285: aload 30 /* adobe */
            ifnull 297
       286: .line 766
            aload 30 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            tableswitch { // 0 - 1
                    0: 287
                    1: 289
              default: 291
          }
       287: .line 768
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
       288: .line 769
            goto 307
       289: .line 771
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 28 /* outCsType */
       290: .line 772
            goto 307
       291: .line 774
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
       292: .line 775
            bipush 6
       293: .line 774
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       294: .line 776
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
       295: .line 777
            iconst_2
            istore 28 /* outCsType */
       296: .line 780
            goto 307
       297: .line 782
      StackMap locals:
      StackMap stack:
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.SOFMarkerSegment.getIDencodedCSType:()I
            istore 33 /* outCS */
        start local 33 // int outCS
       298: .line 785
            iload 33 /* outCS */
            ifeq 301
       299: .line 786
            iload 33 /* outCS */
            istore 28 /* outCsType */
       300: .line 787
            goto 307
       301: .line 789
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.isSubsampled:([Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;)Z
       302: .line 788
            istore 34 /* subsampled */
        start local 34 // boolean subsampled
       303: .line 790
            iload 34 /* subsampled */
            ifeq 306
       304: .line 791
            iconst_3
            istore 28 /* outCsType */
       305: .line 792
            goto 307
       306: .line 793
      StackMap locals: int
      StackMap stack:
            iconst_2
            istore 28 /* outCsType */
        end local 34 // boolean subsampled
        end local 33 // int outCS
        end local 32 // boolean alpha
       307: .line 804
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 32 /* metadataProgressive */
        start local 32 // boolean metadataProgressive
       308: .line 805
            aconst_null
            astore 33 /* scans */
        start local 33 // int[] scans
       309: .line 807
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 324
       310: .line 808
            aload 31 /* sof */
            ifnonnull 314
       311: .line 809
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       312: .line 810
            ldc Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            iconst_1
       313: .line 809
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.SOFMarkerSegment
            astore 31 /* sof */
       314: .line 812
      StackMap locals: int int[]
      StackMap stack:
            aload 31 /* sof */
            ifnull 320
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.tag:I
            sipush 194
            if_icmpne 320
       315: .line 813
            iconst_1
            istore 32 /* metadataProgressive */
       316: .line 814
            iload 25 /* progressiveMode */
            iconst_3
            if_icmpne 319
       317: .line 815
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            aload 31 /* sof */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectScans:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;)[I
            astore 33 /* scans */
       318: .line 816
            goto 320
       319: .line 817
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
       320: .line 820
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 324
       321: .line 821
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       322: .line 822
            ldc Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            iconst_1
       323: .line 821
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.JFIFMarkerSegment
            astore 29 /* jfif */
       324: .line 826
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getThumbnails:()Ljava/util/List;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       325: .line 827
            aload 2 /* image */
            invokevirtual javax.imageio.IIOImage.getNumThumbnails:()I
            istore 34 /* numThumbs */
        start local 34 // int numThumbs
       326: .line 828
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       327: .line 832
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 349
       328: .line 834
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 333
       329: .line 835
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       330: .line 836
            iload 34 /* numThumbs */
            ifeq 349
       331: .line 837
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       332: .line 839
            goto 349
       333: .line 843
      StackMap locals: int
      StackMap stack:
            iload 11 /* fullImage */
            ifne 339
       334: .line 844
            aload 29 /* jfif */
            ifnonnull 349
       335: .line 845
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       336: .line 846
            iload 34 /* numThumbs */
            ifeq 349
       337: .line 847
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       338: .line 850
            goto 349
       339: .line 851
      StackMap locals:
      StackMap stack:
            aload 29 /* jfif */
            ifnonnull 349
       340: .line 853
            iload 28 /* outCsType */
            iconst_1
            if_icmpeq 342
       341: .line 854
            iload 28 /* outCsType */
            iconst_3
            if_icmpne 346
       342: .line 855
      StackMap locals:
      StackMap stack:
            iload 34 /* numThumbs */
            ifeq 349
       343: .line 856
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
       344: .line 857
            aload 0 /* this */
            bipush 11
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       345: .line 859
            goto 349
       346: .line 860
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
       347: .line 861
            iload 34 /* numThumbs */
            ifeq 349
       348: .line 862
            aload 0 /* this */
            bipush 10
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
       349: .line 873
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 351
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifne 351
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifne 351
       350: .line 872
            iconst_0
            goto 352
      StackMap locals:
      StackMap stack:
       351: iconst_1
      StackMap locals:
      StackMap stack: int
       352: istore 35 /* haveMetadata */
        start local 35 // boolean haveMetadata
       353: .line 878
            iconst_1
            istore 36 /* writeDQT */
        start local 36 // boolean writeDQT
       354: .line 879
            iconst_1
            istore 37 /* writeDHT */
        start local 37 // boolean writeDHT
       355: .line 882
            aconst_null
            astore 38 /* dqt */
        start local 38 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
       356: .line 883
            aconst_null
            astore 39 /* dht */
        start local 39 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
       357: .line 885
            iconst_0
            istore 40 /* restartInterval */
        start local 40 // int restartInterval
       358: .line 887
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnull 375
       359: .line 888
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       360: .line 889
            ldc Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
            iconst_1
       361: .line 888
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment
            astore 38 /* dqt */
       362: .line 890
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       363: .line 891
            ldc Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            iconst_1
       364: .line 890
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            astore 39 /* dht */
       365: .line 893
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
       366: .line 894
            ldc Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
            iconst_1
       367: .line 893
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.findMarkerSegment:(Ljava/lang/Class;Z)Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            checkcast com.sun.imageio.plugins.jpeg.DRIMarkerSegment
       368: .line 892
            astore 41 /* dri */
        start local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       369: .line 895
            aload 41 /* dri */
            ifnull 371
       370: .line 896
            aload 41 /* dri */
            getfield com.sun.imageio.plugins.jpeg.DRIMarkerSegment.restartInterval:I
            istore 40 /* restartInterval */
       371: .line 899
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DRIMarkerSegment
      StackMap stack:
            aload 38 /* dqt */
            ifnonnull 373
       372: .line 900
            iconst_0
            istore 36 /* writeDQT */
       373: .line 902
      StackMap locals:
      StackMap stack:
            aload 39 /* dht */
            ifnonnull 375
       374: .line 903
            iconst_0
            istore 37 /* writeDHT */
        end local 41 // com.sun.imageio.plugins.jpeg.DRIMarkerSegment dri
       375: .line 909
      StackMap locals:
      StackMap stack:
            aload 20 /* qTables */
            ifnonnull 386
       376: .line 910
            aload 38 /* dqt */
            ifnull 379
       377: .line 911
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectQTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       378: .line 912
            goto 386
      StackMap locals:
      StackMap stack:
       379: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnull 382
       380: .line 913
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       381: .line 914
            goto 386
      StackMap locals:
      StackMap stack:
       382: aload 24 /* jparam */
            ifnull 385
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 385
       383: .line 915
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       384: .line 916
            goto 386
       385: .line 917
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            astore 20 /* qTables */
       386: .line 923
      StackMap locals:
      StackMap stack:
            iload 23 /* optimizeHuffman */
            ifne 401
       387: .line 925
            aload 39 /* dht */
            ifnull 391
            iload 32 /* metadataProgressive */
            ifne 391
       388: .line 926
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       389: .line 927
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       390: .line 928
            goto 401
      StackMap locals:
      StackMap stack:
       391: aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnull 395
       392: .line 929
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       393: .line 930
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       394: .line 931
            goto 401
      StackMap locals:
      StackMap stack:
       395: aload 24 /* jparam */
            ifnull 399
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.areTablesSet:()Z
            ifeq 399
       396: .line 932
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getDCHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       397: .line 933
            aload 24 /* jparam */
            invokevirtual javax.imageio.plugins.jpeg.JPEGImageWriteParam.getACHuffmanTables:()[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       398: .line 934
            goto 401
       399: .line 935
      StackMap locals:
      StackMap stack:
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 21 /* DCHuffmanTables */
       400: .line 936
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            astore 22 /* ACHuffmanTables */
       401: .line 941
      StackMap locals:
      StackMap stack:
            iload 9 /* numBandsUsed */
            newarray 10
            astore 41 /* componentIds */
        start local 41 // int[] componentIds
       402: .line 942
            iload 9 /* numBandsUsed */
            newarray 10
            astore 42 /* HsamplingFactors */
        start local 42 // int[] HsamplingFactors
       403: .line 943
            iload 9 /* numBandsUsed */
            newarray 10
            astore 43 /* VsamplingFactors */
        start local 43 // int[] VsamplingFactors
       404: .line 944
            iload 9 /* numBandsUsed */
            newarray 10
            astore 44 /* QtableSelectors */
        start local 44 // int[] QtableSelectors
       405: .line 945
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       406: goto 412
       407: .line 946
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int
      StackMap stack:
            aload 41 /* componentIds */
            iload 45 /* i */
            iload 45 /* i */
            iconst_1
            iadd
            iastore
       408: .line 947
            aload 42 /* HsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       409: .line 948
            aload 43 /* VsamplingFactors */
            iload 45 /* i */
            iconst_1
            iastore
       410: .line 949
            aload 44 /* QtableSelectors */
            iload 45 /* i */
            iconst_0
            iastore
       411: .line 945
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       412: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 407
        end local 45 // int i
       413: .line 953
            aload 31 /* sof */
            ifnull 423
       414: .line 954
            iconst_0
            istore 45 /* i */
        start local 45 // int i
       415: goto 422
       416: .line 955
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
            ifne 418
       417: .line 956
            aload 41 /* componentIds */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.componentId:I
            iastore
       418: .line 958
      StackMap locals:
      StackMap stack:
            aload 42 /* HsamplingFactors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            iastore
       419: .line 959
            aload 43 /* VsamplingFactors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            iastore
       420: .line 960
            aload 44 /* QtableSelectors */
            iload 45 /* i */
            aload 31 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 45 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.QtableSelector:I
            iastore
       421: .line 954
            iinc 45 /* i */ 1
      StackMap locals:
      StackMap stack:
       422: iload 45 /* i */
            iload 9 /* numBandsUsed */
            if_icmplt 416
        end local 45 // int i
       423: .line 964
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
            iload 18 /* gridX */
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
       424: .line 965
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 18 /* gridX */
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       425: .line 966
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 19 /* gridY */
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
       426: .line 967
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            iload 19 /* gridY */
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
       427: .line 969
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 16 /* periodX */
            iadd
            iconst_1
            isub
            iload 16 /* periodX */
            idiv
            istore 45 /* destWidth */
        start local 45 // int destWidth
       428: .line 970
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            iload 17 /* periodY */
            iadd
            iconst_1
            isub
            iload 17 /* periodY */
            idiv
            istore 46 /* destHeight */
        start local 46 // int destHeight
       429: .line 973
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iload 9 /* numBandsUsed */
            imul
            istore 47 /* lineSize */
        start local 47 // int lineSize
       430: .line 975
            new java.awt.image.DataBufferByte
            dup
            iload 47 /* lineSize */
            invokespecial java.awt.image.DataBufferByte.<init>:(I)V
            astore 48 /* buffer */
        start local 48 // java.awt.image.DataBufferByte buffer
       431: .line 978
            getstatic com.sun.imageio.plugins.jpeg.JPEG.bandOffsets:[[I
            iload 9 /* numBandsUsed */
            iconst_1
            isub
            aaload
            astore 49 /* bandOffs */
        start local 49 // int[] bandOffs
       432: .line 980
            aload 0 /* this */
            aload 48 /* buffer */
       433: .line 981
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
       434: .line 982
            iload 47 /* lineSize */
       435: .line 983
            iload 9 /* numBandsUsed */
       436: .line 984
            aload 49 /* bandOffs */
       437: .line 985
            aconst_null
       438: .line 980
            invokestatic java.awt.image.Raster.createInterleavedRaster:(Ljava/awt/image/DataBuffer;IIII[ILjava/awt/Point;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
       439: .line 989
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearAbortRequest:()V
       440: .line 990
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
       441: .line 992
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageStarted:(I)V
       442: .line 993
            goto 446
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[]
      StackMap stack: java.lang.Throwable
       443: astore 50
       444: .line 994
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       445: .line 995
            aload 50
            athrow
       446: .line 994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       447: .line 997
            iconst_0
            istore 50 /* aborted */
        start local 50 // boolean aborted
       448: .line 999
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 451
       449: .line 1000
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "inCsType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 27 /* inCsType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       450: .line 1001
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "outCsType: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 28 /* outCsType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
       451: .line 1007
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
       452: .line 1008
            aload 48 /* buffer */
            invokevirtual java.awt.image.DataBufferByte.getData:()[B
       453: .line 1009
            iload 27 /* inCsType */
            iload 28 /* outCsType */
       454: .line 1010
            iload 9 /* numBandsUsed */
       455: .line 1011
            aload 12 /* bandSizes */
       456: .line 1012
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
       457: .line 1013
            iload 45 /* destWidth */
            iload 46 /* destHeight */
       458: .line 1014
            iload 16 /* periodX */
            iload 17 /* periodY */
       459: .line 1015
            aload 20 /* qTables */
       460: .line 1016
            iload 36 /* writeDQT */
       461: .line 1017
            aload 21 /* DCHuffmanTables */
       462: .line 1018
            aload 22 /* ACHuffmanTables */
       463: .line 1019
            iload 37 /* writeDHT */
       464: .line 1020
            iload 23 /* optimizeHuffman */
       465: .line 1021
            iload 25 /* progressiveMode */
            ifeq 466
            iconst_1
            goto 467
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[] int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter long byte[] int int int int[] int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] int javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int int
       466: iconst_0
       467: .line 1023
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter javax.imageio.metadata.IIOMetadata javax.imageio.IIOImage javax.imageio.ImageWriteParam int java.awt.image.RenderedImage int java.awt.image.ColorModel java.awt.color.ColorSpace int int int int[] javax.imageio.ImageTypeSpecifier int int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int javax.imageio.plugins.jpeg.JPEGImageWriteParam int javax.imageio.metadata.IIOMetadata int int com.sun.imageio.plugins.jpeg.JFIFMarkerSegment com.sun.imageio.plugins.jpeg.AdobeMarkerSegment com.sun.imageio.plugins.jpeg.SOFMarkerSegment int int[] int int int int com.sun.imageio.plugins.jpeg.DQTMarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int int[] int[] int[] int[] int int int java.awt.image.DataBufferByte int[] int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter long byte[] int int int int[] int int int int int javax.imageio.plugins.jpeg.JPEGQTable[] int javax.imageio.plugins.jpeg.JPEGHuffmanTable[] javax.imageio.plugins.jpeg.JPEGHuffmanTable[] int int int
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
       468: .line 1024
            aload 33 /* scans */
       469: .line 1025
            aload 41 /* componentIds */
       470: .line 1026
            aload 42 /* HsamplingFactors */
       471: .line 1027
            aload 43 /* VsamplingFactors */
       472: .line 1028
            aload 44 /* QtableSelectors */
       473: .line 1029
            iload 35 /* haveMetadata */
       474: .line 1030
            iload 40 /* restartInterval */
       475: .line 1007
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeImage:(J[BIII[IIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;Z[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;ZZZI[I[I[I[I[IZI)Z
            istore 50 /* aborted */
       476: .line 1032
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
       477: .line 1034
            iload 50 /* aborted */
            ifeq 480
       478: .line 1035
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWriteAborted:()V
       479: .line 1036
            goto 481
       480: .line 1037
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageComplete:()V
       481: .line 1040
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            invokeinterface javax.imageio.stream.ImageOutputStream.flush:()V
       482: .line 1041
            goto 486
      StackMap locals:
      StackMap stack: java.lang.Throwable
       483: astore 51
       484: .line 1042
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       485: .line 1043
            aload 51
            athrow
       486: .line 1042
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
       487: .line 1044
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
       488: .line 1045
            return
        end local 50 // boolean aborted
        end local 49 // int[] bandOffs
        end local 48 // java.awt.image.DataBufferByte buffer
        end local 47 // int lineSize
        end local 46 // int destHeight
        end local 45 // int destWidth
        end local 44 // int[] QtableSelectors
        end local 43 // int[] VsamplingFactors
        end local 42 // int[] HsamplingFactors
        end local 41 // int[] componentIds
        end local 40 // int restartInterval
        end local 39 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
        end local 38 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
        end local 37 // boolean writeDHT
        end local 36 // boolean writeDQT
        end local 35 // boolean haveMetadata
        end local 34 // int numThumbs
        end local 33 // int[] scans
        end local 32 // boolean metadataProgressive
        end local 31 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 30 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        end local 29 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        end local 28 // int outCsType
        end local 27 // int inCsType
        end local 26 // javax.imageio.metadata.IIOMetadata mdata
        end local 25 // int progressiveMode
        end local 24 // javax.imageio.plugins.jpeg.JPEGImageWriteParam jparam
        end local 23 // boolean optimizeHuffman
        end local 22 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] ACHuffmanTables
        end local 21 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] DCHuffmanTables
        end local 20 // javax.imageio.plugins.jpeg.JPEGQTable[] qTables
        end local 19 // int gridY
        end local 18 // int gridX
        end local 17 // int periodY
        end local 16 // int periodX
        end local 15 // int imageHeight
        end local 14 // int imageWidth
        end local 13 // javax.imageio.ImageTypeSpecifier destType
        end local 12 // int[] bandSizes
        end local 11 // boolean fullImage
        end local 10 // boolean usingBandSubset
        end local 9 // int numBandsUsed
        end local 8 // java.awt.color.ColorSpace cs
        end local 7 // java.awt.image.ColorModel cm
        end local 6 // int numSrcBands
        end local 5 // java.awt.image.RenderedImage rimage
        end local 4 // boolean rasterOnly
        end local 3 // javax.imageio.ImageWriteParam param
        end local 2 // javax.imageio.IIOImage image
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  489     0                 this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0  489     1       streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            0  489     2                image  Ljavax/imageio/IIOImage;
            0  489     3                param  Ljavax/imageio/ImageWriteParam;
            7  489     4           rasterOnly  Z
            8  489     5               rimage  Ljava/awt/image/RenderedImage;
           33  489     6          numSrcBands  I
           36  489     7                   cm  Ljava/awt/image/ColorModel;
           37  489     8                   cs  Ljava/awt/color/ColorSpace;
           52  489     9         numBandsUsed  I
           54   64    10               sBands  [I
           67  489    10      usingBandSubset  Z
           70  489    11            fullImage  Z
           71  489    12            bandSizes  [I
           75   81    13                 temp  [I
           76   80    14                    i  I
           83   89    13             tempSize  [I
           85   89    14                    i  I
           90   97    13                    i  I
          104  108    13                    i  I
          110  489    13             destType  Ljavax/imageio/ImageTypeSpecifier;
          118  489    14           imageWidth  I
          119  489    15          imageHeight  I
          122  489    16              periodX  I
          123  489    17              periodY  I
          124  489    18                gridX  I
          125  489    19                gridY  I
          126  489    20              qTables  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
          127  489    21      DCHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          128  489    22      ACHuffmanTables  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
          129  489    23      optimizeHuffman  Z
          130  489    24               jparam  Ljavax/imageio/plugins/jpeg/JPEGImageWriteParam;
          131  489    25      progressiveMode  I
          133  171    26         sourceRegion  Ljava/awt/Rectangle;
          139  144    27          imageBounds  Ljava/awt/Rectangle;
          155  164    27              quality  F
          172  489    26                mdata  Ljavax/imageio/metadata/IIOMetadata;
          182  188    27                 type  Ljavax/imageio/ImageTypeSpecifier;
          196  489    27             inCsType  I
          197  489    28            outCsType  I
          198  489    29                 jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
          199  489    30                adobe  Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
          200  489    31                  sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
          233  236    32            transform  I
          260  307    32                alpha  Z
          298  307    33                outCS  I
          303  307    34           subsampled  Z
          308  489    32  metadataProgressive  Z
          309  489    33                scans  [I
          326  489    34            numThumbs  I
          353  489    35         haveMetadata  Z
          354  489    36             writeDQT  Z
          355  489    37             writeDHT  Z
          356  489    38                  dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
          357  489    39                  dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
          358  489    40      restartInterval  I
          369  375    41                  dri  Lcom/sun/imageio/plugins/jpeg/DRIMarkerSegment;
          402  489    41         componentIds  [I
          403  489    42     HsamplingFactors  [I
          404  489    43     VsamplingFactors  [I
          405  489    44      QtableSelectors  [I
          406  413    45                    i  I
          415  423    45                    i  I
          428  489    45            destWidth  I
          429  489    46           destHeight  I
          430  489    47             lineSize  I
          431  489    48               buffer  Ljava/awt/image/DataBufferByte;
          432  489    49             bandOffs  [I
          448  489    50              aborted  Z
      Exception table:
        from    to  target  type
         441   443     443  any
         477   483     483  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  
      image           
      param           

  public boolean canWriteSequence();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1049
            iconst_1
            ireturn
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void prepareWriteSequence(javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
         0: .line 1054
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1056
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1058
            aload 0 /* this */
            aload 1 /* streamMetadata */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.prepareWriteSequenceOnThread:(Ljavax/imageio/metadata/IIOMetadata;)V
         3: .line 1059
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 2
         5: .line 1060
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1061
            aload 2
            athrow
         7: .line 1060
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1062
            return
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    9     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  

  private void prepareWriteSequenceOnThread(javax.imageio.metadata.IIOMetadata);
    descriptor: (Ljavax/imageio/metadata/IIOMetadata;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
         0: .line 1066
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            ifnonnull 2
         1: .line 1067
            new java.lang.IllegalStateException
            dup
            ldc "Output has not been set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1079
      StackMap locals:
      StackMap stack:
            aload 1 /* streamMetadata */
            ifnull 39
         3: .line 1080
            aload 1 /* streamMetadata */
            instanceof com.sun.imageio.plugins.jpeg.JPEGMetadata
            ifeq 38
         4: .line 1083
            aload 1 /* streamMetadata */
            checkcast com.sun.imageio.plugins.jpeg.JPEGMetadata
            astore 2 /* jmeta */
        start local 2 // com.sun.imageio.plugins.jpeg.JPEGMetadata jmeta
         5: .line 1084
            aload 2 /* jmeta */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.isStream:Z
            ifne 9
         6: .line 1085
            new java.lang.IllegalArgumentException
            dup
         7: .line 1086
            ldc "Invalid stream metadata object."
         8: .line 1085
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 1091
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGMetadata
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            ifeq 13
        10: .line 1092
            new javax.imageio.IIOException
            dup
        11: .line 1093
            ldc "JPEG Stream metadata must precede all images"
        12: .line 1092
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 1095
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifeq 15
        14: .line 1096
            new javax.imageio.IIOException
            dup
            ldc "Stream metadata already written!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 1101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* jmeta */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectQTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        16: .line 1102
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 20
        17: .line 1103
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "after collecting from stream metadata, streamQTables.length is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        18: .line 1105
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        19: .line 1103
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        20: .line 1107
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            ifnonnull 22
        21: .line 1108
            aload 0 /* this */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultQTables:()[Ljavax/imageio/plugins/jpeg/JPEGQTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        22: .line 1110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        23: .line 1111
            aload 0 /* this */
            aload 2 /* jmeta */
            iconst_1
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        24: .line 1110
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        25: .line 1112
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 27
        26: .line 1113
            aload 0 /* this */
            iconst_1
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        27: .line 1115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        28: .line 1116
            aload 0 /* this */
            aload 2 /* jmeta */
            iconst_0
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.collectHTablesFromMetadata:(Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        29: .line 1115
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        30: .line 1117
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            ifnonnull 32
        31: .line 1118
            aload 0 /* this */
            iconst_0
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.getDefaultHuffmanTables:(Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        32: .line 1122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
        33: .line 1123
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamQTables:[Ljavax/imageio/plugins/jpeg/JPEGQTable;
        34: .line 1124
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamDCHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        35: .line 1125
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.streamACHuffmanTables:[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
        36: .line 1122
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeTables:(J[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;)V
        end local 2 // com.sun.imageio.plugins.jpeg.JPEGMetadata jmeta
        37: .line 1126
            goto 39
        38: .line 1127
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            ldc "Stream metadata must be JPEG metadata"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 1130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
        40: .line 1131
            return
        end local 1 // javax.imageio.metadata.IIOMetadata streamMetadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   41     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1  streamMetadata  Ljavax/imageio/metadata/IIOMetadata;
            5   37     2           jmeta  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      streamMetadata  

  public void writeToSequence(javax.imageio.IIOImage, javax.imageio.ImageWriteParam);
    descriptor: (Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.IIOImage image
        start local 2 // javax.imageio.ImageWriteParam param
         0: .line 1135
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1137
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1139
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1140
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            aload 1 /* image */
            aload 2 /* param */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.write:(Ljavax/imageio/metadata/IIOMetadata;Ljavax/imageio/IIOImage;Ljavax/imageio/ImageWriteParam;)V
         5: .line 1144
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 3
         7: .line 1145
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1146
            aload 3
            athrow
         9: .line 1145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1147
            return
        end local 2 // javax.imageio.ImageWriteParam param
        end local 1 // javax.imageio.IIOImage image
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   11     1  image  Ljavax/imageio/IIOImage;
            0   11     2  param  Ljavax/imageio/ImageWriteParam;
      Exception table:
        from    to  target  type
           1     6       6  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      image  
      param  

  public void endWriteSequence();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1150
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1152
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1154
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
            ifne 4
         3: .line 1155
            new java.lang.IllegalStateException
            dup
            ldc "sequencePrepared not called!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sequencePrepared:Z
         5: .line 1158
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1159
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1160
            aload 1
            athrow
         9: .line 1159
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1161
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     6       6  any
    Exceptions:
      throws java.io.IOException

  public synchronized void abort();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1164
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1170
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.abort:()V
         2: .line 1171
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.abortWrite:(J)V
         3: .line 1172
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1173
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1174
            aload 1
            athrow
         7: .line 1173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1175
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     4       4  any

  protected synchronized void clearAbortRequest();
    descriptor: ()V
    flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1179
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1181
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1182
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.abortRequested:()Z
            ifeq 10
         3: .line 1183
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.clearAbortRequest:()V
         4: .line 1185
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetWriter:(J)V
         5: .line 1187
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setDest:(J)V
         6: .line 1189
            goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: astore 1
         8: .line 1190
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         9: .line 1191
            aload 1
            athrow
        10: .line 1190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        11: .line 1192
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     7       7  any

  private void resetInternalState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1196
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.resetWriter:(J)V
         1: .line 1199
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
         2: .line 1200
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
         3: .line 1201
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
         4: .line 1202
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1203
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
         6: .line 1204
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
         7: .line 1205
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1208
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1210
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1212
            aload 0 /* this */
            invokespecial javax.imageio.ImageWriter.reset:()V
         3: .line 1213
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         4: astore 1
         5: .line 1214
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         6: .line 1215
            aload 1
            athrow
         7: .line 1214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1216
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     4       4  any

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1219
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.setThreadLock:()V
         1: .line 1221
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.check:()V
         2: .line 1223
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
            lconst_0
            lcmp
            ifeq 9
         3: .line 1224
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.disposerRecord:Lsun/java2d/DisposerRecord;
            invokeinterface sun.java2d.DisposerRecord.dispose:()V
         4: .line 1225
            aload 0 /* this */
            lconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.structPointer:J
         5: .line 1227
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 1228
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
         8: .line 1229
            aload 1
            athrow
         9: .line 1228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.clearThreadLock:()V
        10: .line 1230
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     6       6  any

  void warningOccurred(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int code
         0: .line 1242
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1244
            iload 1 /* code */
            iflt 2
            iload 1 /* code */
            bipush 15
            if_icmple 3
         2: .line 1245
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            ldc "Invalid warning index"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1247
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 1248
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
         5: .line 1249
            ldc "com.sun.imageio.plugins.jpeg.JPEGImageWriterResources"
         6: .line 1250
            iload 1 /* code */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
         7: .line 1247
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWarningOccurred:(ILjava/lang/String;Ljava/lang/String;)V
         8: .line 1251
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
        10: .line 1252
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        11: .line 1253
            aload 2
            athrow
        12: .line 1252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        13: .line 1254
            return
        end local 1 // int code
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   14     1  code  I
      Exception table:
        from    to  target  type
           1     9       9  any
    MethodParameters:
      Name  Flags
      code  

  void warningWithMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.lang.String msg
         0: .line 1270
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1272
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            aload 1 /* msg */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processWarningOccurred:(ILjava/lang/String;)V
         2: .line 1273
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1274
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1275
            aload 2
            athrow
         6: .line 1274
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1276
            return
        end local 1 // java.lang.String msg
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1   msg  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
      Name  Flags
      msg   

  void thumbnailStarted(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int thumbnailIndex
         0: .line 1279
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1281
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.currentImage:I
            iload 1 /* thumbnailIndex */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailStarted:(II)V
         2: .line 1282
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1283
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1284
            aload 2
            athrow
         6: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1285
            return
        end local 1 // int thumbnailIndex
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1  thumbnailIndex  I
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      thumbnailIndex  

  void thumbnailProgress(float);
    descriptor: (F)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // float percentageDone
         0: .line 1289
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1291
            aload 0 /* this */
            fload 1 /* percentageDone */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailProgress:(F)V
         2: .line 1292
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 2
         4: .line 1293
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1294
            aload 2
            athrow
         6: .line 1293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1295
            return
        end local 1 // float percentageDone
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1  percentageDone  F
      Exception table:
        from    to  target  type
           1     3       3  any
    MethodParameters:
                Name  Flags
      percentageDone  

  void thumbnailComplete();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1299
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1301
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processThumbnailComplete:()V
         2: .line 1302
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 1303
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1304
            aload 1
            athrow
         6: .line 1303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1305
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
      Exception table:
        from    to  target  type
           1     3       3  any

  private void checkSOFBands(com.sun.imageio.plugins.jpeg.SOFMarkerSegment, int);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        start local 2 // int numBandsUsed
         0: .line 1316
            aload 1 /* sof */
            ifnull 5
         1: .line 1317
            aload 1 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            arraylength
            iload 2 /* numBandsUsed */
            if_icmpeq 5
         2: .line 1318
            new javax.imageio.IIOException
            dup
         3: .line 1319
            ldc "Metadata components != number of destination bands"
         4: .line 1318
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1322
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int numBandsUsed
        end local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0          this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    6     1           sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            0    6     2  numBandsUsed  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
              Name  Flags
      sof           
      numBandsUsed  

  private void checkJFIF(com.sun.imageio.plugins.jpeg.JFIFMarkerSegment, javax.imageio.ImageTypeSpecifier, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        start local 2 // javax.imageio.ImageTypeSpecifier type
        start local 3 // boolean input
         0: .line 1327
            aload 1 /* jfif */
            ifnull 7
         1: .line 1328
            aload 2 /* type */
            iload 3 /* input */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.isJFIFcompliant:(Ljavax/imageio/ImageTypeSpecifier;Z)Z
            ifne 7
         2: .line 1329
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
         3: .line 1330
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1331
            iconst_5
            goto 6
         5: .line 1332
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter
            iconst_3
         6: .line 1330
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JFIFMarkerSegment javax.imageio.ImageTypeSpecifier int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter int
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         7: .line 1335
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean input
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // com.sun.imageio.plugins.jpeg.JFIFMarkerSegment jfif
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1   jfif  Lcom/sun/imageio/plugins/jpeg/JFIFMarkerSegment;
            0    8     2   type  Ljavax/imageio/ImageTypeSpecifier;
            0    8     3  input  Z
    MethodParameters:
       Name  Flags
      jfif   
      type   
      input  

  private void checkAdobe(com.sun.imageio.plugins.jpeg.AdobeMarkerSegment, javax.imageio.ImageTypeSpecifier, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;Ljavax/imageio/ImageTypeSpecifier;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        start local 2 // javax.imageio.ImageTypeSpecifier type
        start local 3 // boolean input
         0: .line 1340
            aload 1 /* adobe */
            ifnull 11
         1: .line 1341
            aload 2 /* type */
            iload 3 /* input */
            invokestatic com.sun.imageio.plugins.jpeg.JPEG.transformForType:(Ljavax/imageio/ImageTypeSpecifier;Z)I
            istore 4 /* rightTransform */
        start local 4 // int rightTransform
         2: .line 1342
            aload 1 /* adobe */
            getfield com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.transform:I
            iload 4 /* rightTransform */
            if_icmpeq 11
         3: .line 1343
            aload 0 /* this */
            iload 3 /* input */
            ifeq 5
         4: .line 1344
            bipush 6
            goto 6
         5: .line 1345
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.AdobeMarkerSegment javax.imageio.ImageTypeSpecifier int int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter
            iconst_4
         6: .line 1343
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.AdobeMarkerSegment javax.imageio.ImageTypeSpecifier int int
      StackMap stack: com.sun.imageio.plugins.jpeg.JPEGImageWriter int
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.warningOccurred:(I)V
         7: .line 1346
            iload 4 /* rightTransform */
            iconst_m1
            if_icmpne 10
         8: .line 1347
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
         9: .line 1348
            goto 11
        10: .line 1349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 4 /* rightTransform */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        end local 4 // int rightTransform
        11: .line 1353
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean input
        end local 2 // javax.imageio.ImageTypeSpecifier type
        end local 1 // com.sun.imageio.plugins.jpeg.AdobeMarkerSegment adobe
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   12     1           adobe  Lcom/sun/imageio/plugins/jpeg/AdobeMarkerSegment;
            0   12     2            type  Ljavax/imageio/ImageTypeSpecifier;
            0   12     3           input  Z
            2   11     4  rightTransform  I
    MethodParameters:
       Name  Flags
      adobe  
      type   
      input  

  private int[] collectScans(com.sun.imageio.plugins.jpeg.JPEGMetadata, com.sun.imageio.plugins.jpeg.SOFMarkerSegment);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;)[I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=13, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        start local 2 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
         0: .line 1363
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* segments */
        start local 3 // java.util.List segments
         1: .line 1364
            bipush 9
            istore 4 /* SCAN_SIZE */
        start local 4 // int SCAN_SIZE
         2: .line 1365
            iconst_4
            istore 5 /* MAX_COMPS_PER_SCAN */
        start local 5 // int MAX_COMPS_PER_SCAN
         3: .line 1366
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
         4: .line 1367
            goto 8
         5: .line 1368
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata com.sun.imageio.plugins.jpeg.SOFMarkerSegment java.util.List int int java.util.Iterator
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 7 /* seg */
        start local 7 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         6: .line 1369
            aload 7 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            ifeq 8
         7: .line 1370
            aload 3 /* segments */
            aload 7 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         8: .line 1367
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        end local 6 // java.util.Iterator iter
         9: .line 1373
            aconst_null
            astore 6 /* retval */
        start local 6 // int[] retval
        10: .line 1374
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        11: .line 1375
            aload 3 /* segments */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 40
        12: .line 1376
            aload 0 /* this */
            aload 3 /* segments */
            invokeinterface java.util.List.size:()I
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
        13: .line 1377
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
            iload 4 /* SCAN_SIZE */
            imul
            newarray 10
            astore 6 /* retval */
        14: .line 1378
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        15: .line 1379
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        16: goto 39
        17: .line 1380
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata com.sun.imageio.plugins.jpeg.SOFMarkerSegment java.util.List int int int[] int int
      StackMap stack:
            aload 3 /* segments */
            iload 8 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.SOSMarkerSegment
            astore 9 /* sos */
        start local 9 // com.sun.imageio.plugins.jpeg.SOSMarkerSegment sos
        18: .line 1381
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            arraylength
            iastore
        19: .line 1382
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        20: goto 33
        21: .line 1383
      StackMap locals: com.sun.imageio.plugins.jpeg.SOSMarkerSegment int
      StackMap stack:
            iload 10 /* j */
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            arraylength
            if_icmpge 31
        22: .line 1384
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment$ScanComponentSpec;
            iload 10 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment$ScanComponentSpec.componentSelector:I
            istore 11 /* compSel */
        start local 11 // int compSel
        23: .line 1385
            iconst_0
            istore 12 /* k */
        start local 12 // int k
        24: goto 29
        25: .line 1386
      StackMap locals: int int
      StackMap stack:
            iload 11 /* compSel */
            aload 2 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            iload 12 /* k */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.componentId:I
            if_icmpne 28
        26: .line 1387
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iload 12 /* k */
            iastore
        27: .line 1388
            goto 32
        28: .line 1385
      StackMap locals:
      StackMap stack:
            iinc 12 /* k */ 1
      StackMap locals:
      StackMap stack:
        29: iload 12 /* k */
            aload 2 /* sof */
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment.componentSpecs:[Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            arraylength
            if_icmplt 25
        end local 12 // int k
        end local 11 // int compSel
        30: .line 1391
            goto 32
        31: .line 1392
      StackMap locals:
      StackMap stack:
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            iconst_0
            iastore
        32: .line 1382
      StackMap locals:
      StackMap stack:
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 10 /* j */
            iload 5 /* MAX_COMPS_PER_SCAN */
            if_icmplt 21
        end local 10 // int j
        34: .line 1395
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.startSpectralSelection:I
            iastore
        35: .line 1396
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.endSpectralSelection:I
            iastore
        36: .line 1397
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.approxHigh:I
            iastore
        37: .line 1398
            aload 6 /* retval */
            iload 7 /* index */
            iinc 7 /* index */ 1
            aload 9 /* sos */
            getfield com.sun.imageio.plugins.jpeg.SOSMarkerSegment.approxLow:I
            iastore
        end local 9 // com.sun.imageio.plugins.jpeg.SOSMarkerSegment sos
        38: .line 1379
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 8 /* i */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.numScans:I
            if_icmplt 17
        end local 8 // int i
        end local 7 // int index
        40: .line 1401
      StackMap locals:
      StackMap stack:
            aload 6 /* retval */
            areturn
        end local 6 // int[] retval
        end local 5 // int MAX_COMPS_PER_SCAN
        end local 4 // int SCAN_SIZE
        end local 3 // java.util.List segments
        end local 2 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment sof
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   41     0                this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   41     1            metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            0   41     2                 sof  Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment;
            1   41     3            segments  Ljava/util/List<Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment;>;
            2   41     4           SCAN_SIZE  I
            3   41     5  MAX_COMPS_PER_SCAN  I
            4    9     6                iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            6    8     7                 seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
           10   41     6              retval  [I
           15   40     7               index  I
           16   40     8                   i  I
           18   38     9                 sos  Lcom/sun/imageio/plugins/jpeg/SOSMarkerSegment;
           20   34    10                   j  I
           23   30    11             compSel  I
           24   30    12                   k  I
    MethodParameters:
          Name  Flags
      metadata  
      sof       

  private javax.imageio.plugins.jpeg.JPEGQTable[] collectQTablesFromMetadata(com.sun.imageio.plugins.jpeg.JPEGMetadata);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;)[Ljavax/imageio/plugins/jpeg/JPEGQTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
         0: .line 1410
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* tables */
        start local 2 // java.util.ArrayList tables
         1: .line 1411
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
         2: .line 1412
            goto 8
         3: .line 1413
      StackMap locals: java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 4 /* seg */
        start local 4 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         4: .line 1414
            aload 4 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DQTMarkerSegment
            ifeq 8
         5: .line 1416
            aload 4 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment
         6: .line 1415
            astore 5 /* dqt */
        start local 5 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
         7: .line 1417
            aload 2 /* tables */
            aload 5 /* dqt */
            getfield com.sun.imageio.plugins.jpeg.DQTMarkerSegment.tables:Ljava/util/List;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        end local 5 // com.sun.imageio.plugins.jpeg.DQTMarkerSegment dqt
        end local 4 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         8: .line 1412
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         9: .line 1420
            aconst_null
            astore 4 /* retval */
        start local 4 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
        10: .line 1421
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 19
        11: .line 1422
            aload 2 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGQTable
            astore 4 /* retval */
        12: .line 1423
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        13: goto 18
        14: .line 1424
      StackMap locals: javax.imageio.plugins.jpeg.JPEGQTable[] int
      StackMap stack:
            aload 4 /* retval */
            iload 5 /* i */
        15: .line 1425
            new javax.imageio.plugins.jpeg.JPEGQTable
            dup
            aload 2 /* tables */
            iload 5 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable
            getfield com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable.data:[I
            invokespecial javax.imageio.plugins.jpeg.JPEGQTable.<init>:([I)V
        16: .line 1424
            aastore
        17: .line 1423
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 5 /* i */
            aload 4 /* retval */
            arraylength
            if_icmplt 14
        end local 5 // int i
        19: .line 1428
      StackMap locals:
      StackMap stack:
            aload 4 /* retval */
            areturn
        end local 4 // javax.imageio.plugins.jpeg.JPEGQTable[] retval
        end local 3 // java.util.Iterator iter
        end local 2 // java.util.ArrayList tables
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   20     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   20     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            1   20     2    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment$Qtable;>;
            2   20     3      iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            4    8     4       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            7    8     5       dqt  Lcom/sun/imageio/plugins/jpeg/DQTMarkerSegment;
           10   20     4    retval  [Ljavax/imageio/plugins/jpeg/JPEGQTable;
           13   19     5         i  I
    MethodParameters:
          Name  Flags
      metadata  

  private javax.imageio.plugins.jpeg.JPEGHuffmanTable[] collectHTablesFromMetadata(com.sun.imageio.plugins.jpeg.JPEGMetadata, boolean);
    descriptor: (Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;Z)[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=9, args_size=3
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        start local 2 // boolean wantDC
         0: .line 1440
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* tables */
        start local 3 // java.util.ArrayList tables
         1: .line 1441
            aload 1 /* metadata */
            getfield com.sun.imageio.plugins.jpeg.JPEGMetadata.markerSequence:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4 /* iter */
        start local 4 // java.util.Iterator iter
         2: .line 1442
            goto 15
         3: .line 1443
      StackMap locals: java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.MarkerSegment
            astore 5 /* seg */
        start local 5 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
         4: .line 1444
            aload 5 /* seg */
            instanceof com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            ifeq 15
         5: .line 1445
            aload 5 /* seg */
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment
            astore 6 /* dht */
        start local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
         6: .line 1446
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         7: goto 14
         8: .line 1447
      StackMap locals: com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int
      StackMap stack:
            aload 6 /* dht */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment.tables:Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
            astore 8 /* htable */
        start local 8 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable htable
         9: .line 1448
            aload 8 /* htable */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableClass:I
            iload 2 /* wantDC */
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList java.util.Iterator com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int
        10: iconst_1
      StackMap locals: com.sun.imageio.plugins.jpeg.JPEGImageWriter com.sun.imageio.plugins.jpeg.JPEGMetadata int java.util.ArrayList java.util.Iterator com.sun.imageio.plugins.jpeg.MarkerSegment com.sun.imageio.plugins.jpeg.DHTMarkerSegment int com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
      StackMap stack: int int
        11: if_icmpne 13
        12: .line 1449
            aload 3 /* tables */
            aload 8 /* htable */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable htable
        13: .line 1446
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            aload 6 /* dht */
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment.tables:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 8
        end local 7 // int i
        end local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment dht
        end local 5 // com.sun.imageio.plugins.jpeg.MarkerSegment seg
        15: .line 1442
      StackMap locals:
      StackMap stack:
            aload 4 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        16: .line 1454
            aconst_null
            astore 5 /* retval */
        start local 5 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        17: .line 1455
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            ifeq 37
        18: .line 1457
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable
        19: .line 1456
            astore 6 /* htables */
        start local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        20: .line 1458
            aload 3 /* tables */
            aload 6 /* htables */
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            pop
        21: .line 1459
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            anewarray javax.imageio.plugins.jpeg.JPEGHuffmanTable
            astore 5 /* retval */
        22: .line 1460
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        23: goto 36
        24: .line 1461
      StackMap locals: javax.imageio.plugins.jpeg.JPEGHuffmanTable[] com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] int
      StackMap stack:
            aload 5 /* retval */
            iload 7 /* i */
            aconst_null
            aastore
        25: .line 1462
            iconst_0
            istore 8 /* j */
        start local 8 // int j
        26: goto 34
        27: .line 1463
      StackMap locals: int
      StackMap stack:
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.tableID:I
            iload 7 /* i */
            if_icmpne 33
        28: .line 1464
            aload 5 /* retval */
            iload 7 /* i */
            aaload
            ifnull 30
        29: .line 1465
            new javax.imageio.IIOException
            dup
            ldc "Metadata has duplicate Htables!"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        30: .line 1467
      StackMap locals:
      StackMap stack:
            aload 5 /* retval */
            iload 7 /* i */
            new javax.imageio.plugins.jpeg.JPEGHuffmanTable
            dup
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.numCodes:[S
        31: .line 1468
            aload 6 /* htables */
            iload 8 /* j */
            aaload
            getfield com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable.values:[S
            invokespecial javax.imageio.plugins.jpeg.JPEGHuffmanTable.<init>:([S[S)V
        32: .line 1467
            aastore
        33: .line 1462
      StackMap locals:
      StackMap stack:
            iinc 8 /* j */ 1
      StackMap locals:
      StackMap stack:
        34: iload 8 /* j */
            aload 3 /* tables */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 27
        end local 8 // int j
        35: .line 1460
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        36: iload 7 /* i */
            aload 5 /* retval */
            arraylength
            if_icmplt 24
        end local 7 // int i
        end local 6 // com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable[] htables
        37: .line 1474
      StackMap locals:
      StackMap stack:
            aload 5 /* retval */
            areturn
        end local 5 // javax.imageio.plugins.jpeg.JPEGHuffmanTable[] retval
        end local 4 // java.util.Iterator iter
        end local 3 // java.util.ArrayList tables
        end local 2 // boolean wantDC
        end local 1 // com.sun.imageio.plugins.jpeg.JPEGMetadata metadata
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   38     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   38     1  metadata  Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            0   38     2    wantDC  Z
            1   38     3    tables  Ljava/util/ArrayList<Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;>;
            2   38     4      iter  Ljava/util/Iterator<Lcom/sun/imageio/plugins/jpeg/MarkerSegment;>;
            4   15     5       seg  Lcom/sun/imageio/plugins/jpeg/MarkerSegment;
            6   15     6       dht  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment;
            7   15     7         i  I
            9   13     8    htable  Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           17   38     5    retval  [Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;
           20   37     6   htables  [Lcom/sun/imageio/plugins/jpeg/DHTMarkerSegment$Htable;
           23   37     7         i  I
           26   35     8         j  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
          Name  Flags
      metadata  
      wantDC    

  private int getSrcCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier type
         0: .line 1482
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // javax.imageio.ImageTypeSpecifier type
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  type  Ljavax/imageio/ImageTypeSpecifier;
    MethodParameters:
      Name  Flags
      type  

  private int getSrcCSType(java.awt.image.RenderedImage);
    descriptor: (Ljava/awt/image/RenderedImage;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.RenderedImage rimage
         0: .line 1486
            aload 0 /* this */
            aload 1 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getSrcCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // java.awt.image.RenderedImage rimage
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  rimage  Ljava/awt/image/RenderedImage;
    MethodParameters:
        Name  Flags
      rimage  

  private int getSrcCSType(java.awt.image.ColorModel);
    descriptor: (Ljava/awt/image/ColorModel;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1490
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1491
            aload 1 /* cm */
            ifnull 12
         2: .line 1492
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         3: .line 1493
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         4: .line 1494
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1496
      StackMap locals: int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1497
            goto 12
         7: .line 1499
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 2 /* retval */
         8: .line 1500
            goto 12
         9: .line 1502
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        10: .line 1503
            goto 12
        11: .line 1505
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 2 /* retval */
        end local 3 // java.awt.color.ColorSpace cs
        12: .line 1509
      StackMap locals:
      StackMap stack:
            iload 2 /* retval */
            ireturn
        end local 2 // int retval
        end local 1 // java.awt.image.ColorModel cm
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1      cm  Ljava/awt/image/ColorModel;
            1   13     2  retval  I
            4   12     3      cs  Ljava/awt/color/ColorSpace;
    MethodParameters:
      Name  Flags
      cm    

  private int getDestCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier destType
         0: .line 1513
            aload 1 /* destType */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            astore 2 /* cm */
        start local 2 // java.awt.image.ColorModel cm
         1: .line 1514
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         2: .line 1515
            aload 2 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         3: .line 1516
            iconst_0
            istore 4 /* retval */
        start local 4 // int retval
         4: .line 1517
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1519
      StackMap locals: java.awt.image.ColorModel java.awt.color.ColorSpace int
      StackMap stack:
            iconst_1
            istore 4 /* retval */
         6: .line 1520
            goto 12
         7: .line 1522
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 4 /* retval */
         8: .line 1523
            goto 12
         9: .line 1525
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 4 /* retval */
        10: .line 1526
            goto 12
        11: .line 1528
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 4 /* retval */
        12: .line 1531
      StackMap locals:
      StackMap stack:
            iload 4 /* retval */
            ireturn
        end local 4 // int retval
        end local 3 // java.awt.color.ColorSpace cs
        end local 2 // java.awt.image.ColorModel cm
        end local 1 // javax.imageio.ImageTypeSpecifier destType
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1  destType  Ljavax/imageio/ImageTypeSpecifier;
            1   13     2        cm  Ljava/awt/image/ColorModel;
            3   13     3        cs  Ljava/awt/color/ColorSpace;
            4   13     4    retval  I
    MethodParameters:
          Name  Flags
      destType  

  private int getDefaultDestCSType(javax.imageio.ImageTypeSpecifier);
    descriptor: (Ljavax/imageio/ImageTypeSpecifier;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // javax.imageio.ImageTypeSpecifier type
         0: .line 1535
            aload 0 /* this */
            aload 1 /* type */
            invokevirtual javax.imageio.ImageTypeSpecifier.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // javax.imageio.ImageTypeSpecifier type
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  type  Ljavax/imageio/ImageTypeSpecifier;
    MethodParameters:
      Name  Flags
      type  

  private int getDefaultDestCSType(java.awt.image.RenderedImage);
    descriptor: (Ljava/awt/image/RenderedImage;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.RenderedImage rimage
         0: .line 1539
            aload 0 /* this */
            aload 1 /* rimage */
            invokeinterface java.awt.image.RenderedImage.getColorModel:()Ljava/awt/image/ColorModel;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.getDefaultDestCSType:(Ljava/awt/image/ColorModel;)I
            ireturn
        end local 1 // java.awt.image.RenderedImage rimage
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    1     1  rimage  Ljava/awt/image/RenderedImage;
    MethodParameters:
        Name  Flags
      rimage  

  private int getDefaultDestCSType(java.awt.image.ColorModel);
    descriptor: (Ljava/awt/image/ColorModel;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=4, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // java.awt.image.ColorModel cm
         0: .line 1543
            iconst_0
            istore 2 /* retval */
        start local 2 // int retval
         1: .line 1544
            aload 1 /* cm */
            ifnull 12
         2: .line 1545
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.hasAlpha:()Z
            pop
         3: .line 1546
            aload 1 /* cm */
            invokevirtual java.awt.image.ColorModel.getColorSpace:()Ljava/awt/color/ColorSpace;
            astore 3 /* cs */
        start local 3 // java.awt.color.ColorSpace cs
         4: .line 1547
            aload 3 /* cs */
            invokevirtual java.awt.color.ColorSpace.getType:()I
            tableswitch { // 3 - 9
                    3: 9
                    4: 12
                    5: 7
                    6: 5
                    7: 12
                    8: 12
                    9: 11
              default: 12
          }
         5: .line 1549
      StackMap locals: int java.awt.color.ColorSpace
      StackMap stack:
            iconst_1
            istore 2 /* retval */
         6: .line 1550
            goto 12
         7: .line 1552
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
         8: .line 1553
            goto 12
         9: .line 1555
      StackMap locals:
      StackMap stack:
            iconst_3
            istore 2 /* retval */
        10: .line 1556
            goto 12
        11: .line 1558
      StackMap locals:
      StackMap stack:
            iconst_5
            istore 2 /* retval */
        end local 3 // java.awt.color.ColorSpace cs
        12: .line 1562
      StackMap locals:
      StackMap stack:
            iload 2 /* retval */
            ireturn
        end local 2 // int retval
        end local 1 // java.awt.image.ColorModel cm
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   13     1      cm  Ljava/awt/image/ColorModel;
            1   13     2  retval  I
            4   12     3      cs  Ljava/awt/color/ColorSpace;
    MethodParameters:
      Name  Flags
      cm    

  private boolean isSubsampled(com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[]);
    descriptor: ([Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[] specs
         0: .line 1566
            aload 1 /* specs */
            iconst_0
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            istore 2 /* hsamp0 */
        start local 2 // int hsamp0
         1: .line 1567
            aload 1 /* specs */
            iconst_0
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            istore 3 /* vsamp0 */
        start local 3 // int vsamp0
         2: .line 1568
            iconst_1
            istore 4 /* i */
        start local 4 // int i
         3: goto 8
         4: .line 1569
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.HsamplingFactor:I
            iload 2 /* hsamp0 */
            if_icmpne 6
         5: .line 1570
            aload 1 /* specs */
            iload 4 /* i */
            aaload
            getfield com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec.VsamplingFactor:I
            iload 3 /* vsamp0 */
            if_icmpeq 7
         6: .line 1571
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         7: .line 1568
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 4 /* i */
            aload 1 /* specs */
            arraylength
            if_icmplt 4
        end local 4 // int i
         9: .line 1573
            iconst_0
            ireturn
        end local 3 // int vsamp0
        end local 2 // int hsamp0
        end local 1 // com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec[] specs
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   10     1   specs  [Lcom/sun/imageio/plugins/jpeg/SOFMarkerSegment$ComponentSpec;
            1   10     2  hsamp0  I
            2   10     3  vsamp0  I
            3    9     4       i  I
    MethodParameters:
       Name  Flags
      specs  

  private static native void initWriterIDs(java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
             Name  Flags
      qTableClass  
      huffClass    

  private native long initJPEGImageWriter();
    descriptor: ()J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native void setDest(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private native boolean writeImage(long, byte[], int, int, int, int[], int, int, int, int, int, javax.imageio.plugins.jpeg.JPEGQTable[], boolean, javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], boolean, boolean, boolean, int, int[], int[], int[], int[], int[], boolean, int);
    descriptor: (J[BIII[IIIIII[Ljavax/imageio/plugins/jpeg/JPEGQTable;Z[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;ZZZI[I[I[I[I[IZI)Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                  Name  Flags
      structPointer     
      data              
      inCsType          
      outCsType         
      numBands          
      bandSizes         
      srcWidth          
      destWidth         
      destHeight        
      stepX             
      stepY             
      qtables           
      writeDQT          
      DCHuffmanTables   
      ACHuffmanTables   
      writeDHT          
      optimizeHuffman   
      progressive       
      numScans          
      scans             
      componentIds      
      HsamplingFactors  
      VsamplingFactors  
      QtableSelectors   
      haveMetadata      
      restartInterval   

  private void writeMetadata();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1625
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            ifnonnull 10
         1: .line 1626
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeDefaultJFIF:Z
            ifeq 7
         2: .line 1627
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
         3: .line 1628
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
         4: .line 1629
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
         5: .line 1630
            aload 0 /* this */
         6: .line 1627
            invokestatic com.sun.imageio.plugins.jpeg.JFIFMarkerSegment.writeDefaultJFIF:(Ljavax/imageio/stream/ImageOutputStream;Ljava/util/List;Ljava/awt/color/ICC_Profile;Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
         7: .line 1632
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.writeAdobe:Z
            ifeq 19
         8: .line 1633
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
            invokestatic com.sun.imageio.plugins.jpeg.AdobeMarkerSegment.writeAdobeSegment:(Ljavax/imageio/stream/ImageOutputStream;I)V
         9: .line 1635
            goto 19
        10: .line 1636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.metadata:Lcom/sun/imageio/plugins/jpeg/JPEGMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
        11: .line 1637
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreJFIF:Z
        12: .line 1638
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.forceJFIF:Z
        13: .line 1639
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.thumbnails:Ljava/util/List;
        14: .line 1640
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.iccProfile:Ljava/awt/color/ICC_Profile;
        15: .line 1641
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ignoreAdobe:Z
        16: .line 1642
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.newAdobeTransform:I
        17: .line 1643
            aload 0 /* this */
        18: .line 1636
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGMetadata.writeToStream:(Ljavax/imageio/stream/ImageOutputStream;ZZLjava/util/List;Ljava/awt/color/ICC_Profile;ZILcom/sun/imageio/plugins/jpeg/JPEGImageWriter;)V
        19: .line 1645
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   20     0  this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
    Exceptions:
      throws java.io.IOException

  private native void writeTables(long, javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[]);
    descriptor: (J[Ljavax/imageio/plugins/jpeg/JPEGQTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;[Ljavax/imageio/plugins/jpeg/JPEGHuffmanTable;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
                 Name  Flags
      structPointer    
      qtables          
      DCHuffmanTables  
      ACHuffmanTables  

  private void grabPixels(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // int y
         0: .line 1664
            aconst_null
            astore 2 /* sourceLine */
        start local 2 // java.awt.image.Raster sourceLine
         1: .line 1665
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexed:Z
            ifeq 16
         2: .line 1666
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
         3: .line 1667
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
         4: .line 1668
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
         5: .line 1669
            iconst_0
            iconst_0
         6: .line 1670
            iconst_1
            newarray 10
         7: .line 1666
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
         8: .line 1675
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
            invokevirtual java.awt.image.IndexColorModel.getTransparency:()I
            iconst_1
            if_icmpeq 9
            iconst_1
            goto 10
      StackMap locals: java.awt.image.Raster
      StackMap stack:
         9: iconst_0
        10: .line 1674
      StackMap locals:
      StackMap stack: int
            istore 3 /* forceARGB */
        start local 3 // boolean forceARGB
        11: .line 1676
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.indexCM:Ljava/awt/image/IndexColorModel;
            aload 2 /* sourceLine */
        12: .line 1677
            iload 3 /* forceARGB */
        13: .line 1676
            invokevirtual java.awt.image.IndexColorModel.convertToIntDiscrete:(Ljava/awt/image/Raster;Z)Ljava/awt/image/BufferedImage;
            astore 4 /* temp */
        start local 4 // java.awt.image.BufferedImage temp
        14: .line 1678
            aload 4 /* temp */
            invokevirtual java.awt.image.BufferedImage.getRaster:()Ljava/awt/image/WritableRaster;
            astore 2 /* sourceLine */
        end local 4 // java.awt.image.BufferedImage temp
        end local 3 // boolean forceARGB
        15: .line 1679
            goto 22
        16: .line 1680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcRas:Ljava/awt/image/Raster;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceXOffset:I
        17: .line 1681
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceYOffset:I
            iload 1 /* y */
            iadd
        18: .line 1682
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceWidth:I
            iconst_1
        19: .line 1683
            iconst_0
            iconst_0
        20: .line 1684
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        21: .line 1680
            invokevirtual java.awt.image.Raster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
        22: .line 1686
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertTosRGB:Z
            ifeq 27
        23: .line 1687
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.debug:Z
            ifeq 25
        24: .line 1688
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            ldc "Converting to sRGB"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        25: .line 1693
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.convertOp:Ljava/awt/image/ColorConvertOp;
            aload 2 /* sourceLine */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
            invokevirtual java.awt.image.ColorConvertOp.filter:(Ljava/awt/image/Raster;Ljava/awt/image/WritableRaster;)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
        26: .line 1694
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.converted:Ljava/awt/image/WritableRaster;
            astore 2 /* sourceLine */
        27: .line 1696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.isAlphaPremultiplied:Z
            ifeq 44
        28: .line 1697
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.createCompatibleWritableRaster:()Ljava/awt/image/WritableRaster;
            astore 3 /* wr */
        start local 3 // java.awt.image.WritableRaster wr
        29: .line 1698
            aconst_null
            astore 4 /* data */
        start local 4 // int[] data
        30: .line 1699
            aload 2 /* sourceLine */
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinX:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinY:()I
        31: .line 1700
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        32: .line 1701
            aload 4 /* data */
        33: .line 1699
            invokevirtual java.awt.image.Raster.getPixels:(IIII[I)[I
            astore 4 /* data */
        34: .line 1702
            aload 3 /* wr */
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinX:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getMinY:()I
        35: .line 1703
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getWidth:()I
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.Raster.getHeight:()I
        36: .line 1704
            aload 4 /* data */
        37: .line 1702
            invokevirtual java.awt.image.WritableRaster.setPixels:(IIII[I)V
        38: .line 1705
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcCM:Ljava/awt/image/ColorModel;
            aload 3 /* wr */
            iconst_0
            invokevirtual java.awt.image.ColorModel.coerceData:(Ljava/awt/image/WritableRaster;Z)Ljava/awt/image/ColorModel;
            pop
        39: .line 1706
            aload 3 /* wr */
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getMinX:()I
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getMinY:()I
        40: .line 1707
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getWidth:()I
            aload 3 /* wr */
            invokevirtual java.awt.image.WritableRaster.getHeight:()I
        41: .line 1708
            iconst_0
            iconst_0
        42: .line 1709
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.srcBands:[I
        43: .line 1706
            invokevirtual java.awt.image.WritableRaster.createChild:(IIIIII[I)Ljava/awt/image/Raster;
            astore 2 /* sourceLine */
        end local 4 // int[] data
        end local 3 // java.awt.image.WritableRaster wr
        44: .line 1711
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.raster:Ljava/awt/image/WritableRaster;
            aload 2 /* sourceLine */
            invokevirtual java.awt.image.WritableRaster.setRect:(Ljava/awt/image/Raster;)V
        45: .line 1712
            iload 1 /* y */
            bipush 7
            if_icmple 53
            iload 1 /* y */
            bipush 8
            irem
            ifne 53
        46: .line 1713
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
        47: .line 1715
            aload 0 /* this */
            iload 1 /* y */
            i2f
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.sourceHeight:I
            i2f
            fdiv
            ldc 100.0
            fmul
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter.processImageProgress:(F)V
        48: .line 1716
            goto 52
      StackMap locals:
      StackMap stack: java.lang.Throwable
        49: astore 3
        50: .line 1717
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        51: .line 1718
            aload 3
            athrow
        52: .line 1717
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
        53: .line 1720
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.awt.image.Raster sourceLine
        end local 1 // int y
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   54     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0   54     1           y  I
            1   54     2  sourceLine  Ljava/awt/image/Raster;
           11   15     3   forceARGB  Z
           14   15     4        temp  Ljava/awt/image/BufferedImage;
           29   44     3          wr  Ljava/awt/image/WritableRaster;
           30   44     4        data  [I
      Exception table:
        from    to  target  type
          47    49      49  any
    MethodParameters:
      Name  Flags
      y     

  private native void abortWrite(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private native void resetWriter(long);
    descriptor: (J)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private static native void disposeWriter(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      structPointer  

  private void writeOutputData(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
        start local 1 // byte[] data
        start local 2 // int offset
        start local 3 // int len
         0: .line 1757
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.lock:()V
         1: .line 1759
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.ios:Ljavax/imageio/stream/ImageOutputStream;
            aload 1 /* data */
            iload 2 /* offset */
            iload 3 /* len */
            invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
         2: .line 1760
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 4
         4: .line 1761
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         5: .line 1762
            aload 4
            athrow
         6: .line 1761
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.cbLock:Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter$CallBackLock;
            invokevirtual com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock.unlock:()V
         7: .line 1763
            return
        end local 3 // int len
        end local 2 // int offset
        end local 1 // byte[] data
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            0    8     1    data  [B
            0    8     2  offset  I
            0    8     3     len  I
      Exception table:
        from    to  target  type
           1     3       3  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      data    
      offset  
      len     

  private synchronized void setThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1769
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1770
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            ifnull 10
         2: .line 1771
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 8
         3: .line 1774
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to use instance of "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 1775
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " locked on thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1776
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " from thread "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 1777
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 1774
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 1779
      StackMap locals: java.lang.Thread
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
         9: .line 1781
            goto 12
        10: .line 1782
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* currThread */
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
        11: .line 1783
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
        12: .line 1785
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            1   13     1  currThread  Ljava/lang/Thread;

  private synchronized void clearThreadLock();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
         0: .line 1788
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            astore 1 /* currThread */
        start local 1 // java.lang.Thread currThread
         1: .line 1789
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            ifnull 2
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            aload 1 /* currThread */
            if_acmpeq 6
         2: .line 1790
      StackMap locals: java.lang.Thread
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Attempt to clear thread lock form wrong thread. Locked thread: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 1791
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1792
            ldc "; current thread: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* currThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1790
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1794
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            iconst_1
            isub
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
         7: .line 1795
            aload 0 /* this */
            getfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theLockCount:I
            ifne 9
         8: .line 1796
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.jpeg.JPEGImageWriter.theThread:Ljava/lang/Thread;
         9: .line 1798
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Thread currThread
        end local 0 // com.sun.imageio.plugins.jpeg.JPEGImageWriter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lcom/sun/imageio/plugins/jpeg/JPEGImageWriter;
            1   10     1  currThread  Ljava/lang/Thread;
}
SourceFile: "JPEGImageWriter.java"
NestMembers:
  com.sun.imageio.plugins.jpeg.JPEGImageWriter$1  com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock  com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock$State  com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord
InnerClasses:
  Htable = com.sun.imageio.plugins.jpeg.DHTMarkerSegment$Htable of com.sun.imageio.plugins.jpeg.DHTMarkerSegment
  Qtable = com.sun.imageio.plugins.jpeg.DQTMarkerSegment$Qtable of com.sun.imageio.plugins.jpeg.DQTMarkerSegment
  com.sun.imageio.plugins.jpeg.JPEGImageWriter$1
  private CallBackLock = com.sun.imageio.plugins.jpeg.JPEGImageWriter$CallBackLock of com.sun.imageio.plugins.jpeg.JPEGImageWriter
  private JPEGWriterDisposerRecord = com.sun.imageio.plugins.jpeg.JPEGImageWriter$JPEGWriterDisposerRecord of com.sun.imageio.plugins.jpeg.JPEGImageWriter
  ComponentSpec = com.sun.imageio.plugins.jpeg.SOFMarkerSegment$ComponentSpec of com.sun.imageio.plugins.jpeg.SOFMarkerSegment
  ScanComponentSpec = com.sun.imageio.plugins.jpeg.SOSMarkerSegment$ScanComponentSpec of com.sun.imageio.plugins.jpeg.SOSMarkerSegment