public class com.sun.imageio.plugins.gif.GIFImageReader extends javax.imageio.ImageReader
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.imageio.plugins.gif.GIFImageReader
  super_class: javax.imageio.ImageReader
{
  javax.imageio.stream.ImageInputStream stream;
    descriptor: Ljavax/imageio/stream/ImageInputStream;
    flags: (0x0000) 

  boolean gotHeader;
    descriptor: Z
    flags: (0x0000) 

  com.sun.imageio.plugins.gif.GIFStreamMetadata streamMetadata;
    descriptor: Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
    flags: (0x0000) 

  int currIndex;
    descriptor: I
    flags: (0x0000) 

  com.sun.imageio.plugins.gif.GIFImageMetadata imageMetadata;
    descriptor: Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
    flags: (0x0000) 

  java.util.List<java.lang.Long> imageStartPosition;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljava/lang/Long;>;

  int imageMetadataLength;
    descriptor: I
    flags: (0x0000) 

  int numImages;
    descriptor: I
    flags: (0x0000) 

  byte[] block;
    descriptor: [B
    flags: (0x0000) 

  int blockLength;
    descriptor: I
    flags: (0x0000) 

  int bitPos;
    descriptor: I
    flags: (0x0000) 

  int nextByte;
    descriptor: I
    flags: (0x0000) 

  int initCodeSize;
    descriptor: I
    flags: (0x0000) 

  int clearCode;
    descriptor: I
    flags: (0x0000) 

  int eofCode;
    descriptor: I
    flags: (0x0000) 

  int next32Bits;
    descriptor: I
    flags: (0x0000) 

  boolean lastBlockFound;
    descriptor: Z
    flags: (0x0000) 

  java.awt.image.BufferedImage theImage;
    descriptor: Ljava/awt/image/BufferedImage;
    flags: (0x0000) 

  java.awt.image.WritableRaster theTile;
    descriptor: Ljava/awt/image/WritableRaster;
    flags: (0x0000) 

  int width;
    descriptor: I
    flags: (0x0000) 

  int height;
    descriptor: I
    flags: (0x0000) 

  int streamX;
    descriptor: I
    flags: (0x0000) 

  int streamY;
    descriptor: I
    flags: (0x0000) 

  int rowsDone;
    descriptor: I
    flags: (0x0000) 

  int interlacePass;
    descriptor: I
    flags: (0x0000) 

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

  static final int[] interlaceIncrement;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int[] interlaceOffset;
    descriptor: [I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  java.awt.Rectangle sourceRegion;
    descriptor: Ljava/awt/Rectangle;
    flags: (0x0000) 

  int sourceXSubsampling;
    descriptor: I
    flags: (0x0000) 

  int sourceYSubsampling;
    descriptor: I
    flags: (0x0000) 

  int sourceMinProgressivePass;
    descriptor: I
    flags: (0x0000) 

  int sourceMaxProgressivePass;
    descriptor: I
    flags: (0x0000) 

  java.awt.Point destinationOffset;
    descriptor: Ljava/awt/Point;
    flags: (0x0000) 

  java.awt.Rectangle destinationRegion;
    descriptor: Ljava/awt/Rectangle;
    flags: (0x0000) 

  int updateMinY;
    descriptor: I
    flags: (0x0000) 

  int updateYStep;
    descriptor: I
    flags: (0x0000) 

  boolean decodeThisRow;
    descriptor: Z
    flags: (0x0000) 

  int destY;
    descriptor: I
    flags: (0x0000) 

  byte[] rowBuf;
    descriptor: [B
    flags: (0x0000) 

  private static byte[] defaultPalette;
    descriptor: [B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 123
            iconst_5
            newarray 10
            dup
            iconst_0
            bipush 8
            iastore
            dup
            iconst_1
            bipush 8
            iastore
            dup
            iconst_2
            iconst_4
            iastore
            dup
            iconst_3
            iconst_2
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
         1: .line 124
            iconst_5
            newarray 10
            dup
            iconst_1
            iconst_4
            iastore
            dup
            iconst_2
            iconst_2
            iastore
            dup
            iconst_3
            iconst_1
            iastore
            dup
            iconst_4
            iconst_m1
            iastore
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
         2: .line 1076
            aconst_null
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(javax.imageio.spi.ImageReaderSpi);
    descriptor: (Ljavax/imageio/spi/ImageReaderSpi;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // javax.imageio.spi.ImageReaderSpi originatingProvider
         0: .line 127
            aload 0 /* this */
            aload 1 /* originatingProvider */
            invokespecial javax.imageio.ImageReader.<init>:(Ljavax/imageio/spi/ImageReaderSpi;)V
         1: .line 56
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         2: .line 61
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
         3: .line 64
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         4: .line 67
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
         5: .line 70
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         6: .line 75
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
         7: .line 82
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
         8: .line 85
            aload 0 /* this */
            sipush 255
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
         9: .line 86
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
        10: .line 87
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
        11: .line 88
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        12: .line 94
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        13: .line 98
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        14: .line 101
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        15: .line 104
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        16: .line 107
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        17: .line 110
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        18: .line 113
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        19: .line 116
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        20: .line 118
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        21: .line 407
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
        22: .line 408
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        23: .line 128
            return
        end local 1 // javax.imageio.spi.ImageReaderSpi originatingProvider
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0                 this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   24     1  originatingProvider  Ljavax/imageio/spi/ImageReaderSpi;
    MethodParameters:
                     Name  Flags
      originatingProvider  

  public void setInput(java.lang.Object, boolean, boolean);
    descriptor: (Ljava/lang/Object;ZZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // java.lang.Object input
        start local 2 // boolean seekForwardOnly
        start local 3 // boolean ignoreMetadata
         0: .line 134
            aload 0 /* this */
            aload 1 /* input */
            iload 2 /* seekForwardOnly */
            iload 3 /* ignoreMetadata */
            invokespecial javax.imageio.ImageReader.setInput:(Ljava/lang/Object;ZZ)V
         1: .line 135
            aload 1 /* input */
            ifnull 8
         2: .line 136
            aload 1 /* input */
            instanceof javax.imageio.stream.ImageInputStream
            ifne 6
         3: .line 137
            new java.lang.IllegalArgumentException
            dup
         4: .line 138
            ldc "input not an ImageInputStream!"
         5: .line 137
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* input */
            checkcast javax.imageio.stream.ImageInputStream
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         7: .line 141
            goto 9
         8: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
         9: .line 146
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.resetStreamSettings:()V
        10: .line 147
            return
        end local 3 // boolean ignoreMetadata
        end local 2 // boolean seekForwardOnly
        end local 1 // java.lang.Object input
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   11     1            input  Ljava/lang/Object;
            0   11     2  seekForwardOnly  Z
            0   11     3   ignoreMetadata  Z
    MethodParameters:
                 Name  Flags
      input            
      seekForwardOnly  
      ignoreMetadata   

  public int getNumImages(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // boolean allowSearch
         0: .line 150
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 151
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 153
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.seekForwardOnly:Z
            ifeq 6
            iload 1 /* allowSearch */
            ifeq 6
         3: .line 154
            new java.lang.IllegalStateException
            dup
         4: .line 155
            ldc "seekForwardOnly and allowSearch can't both be true!"
         5: .line 154
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 158
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ifle 8
         7: .line 159
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ireturn
         8: .line 161
      StackMap locals:
      StackMap stack:
            iload 1 /* allowSearch */
            ifeq 10
         9: .line 162
            aload 0 /* this */
            aload 0 /* this */
            ldc 2147483647
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
        10: .line 164
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
            ireturn
        end local 1 // boolean allowSearch
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0         this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   11     1  allowSearch  Z
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
             Name  Flags
      allowSearch  

  private void checkIndex(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 170
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.minIndex:I
            if_icmpge 2
         1: .line 171
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "imageIndex < minIndex!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 173
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.seekForwardOnly:Z
            ifeq 4
         3: .line 174
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.gif.GIFImageReader.minIndex:I
         4: .line 176
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    5     1  imageIndex  I
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getWidth(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 179
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 181
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 182
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 183
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 185
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 186
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
            ireturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  public int getHeight(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 190
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 192
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 193
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 194
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 196
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 197
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
            ireturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private javax.imageio.ImageTypeSpecifier createIndexed(byte[], byte[], byte[], int);
    descriptor: ([B[B[BI)Ljavax/imageio/ImageTypeSpecifier;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=8, args_size=5
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] r
        start local 2 // byte[] g
        start local 3 // byte[] b
        start local 4 // int bits
         0: .line 205
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorFlag:Z
            ifeq 6
         1: .line 208
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorIndex:I
         2: .line 209
            aload 1 /* r */
            arraylength
            iconst_1
            isub
         3: .line 208
            invokestatic java.lang.Math.min:(II)I
            istore 6 /* idx */
        start local 6 // int idx
         4: .line 210
            new java.awt.image.IndexColorModel
            dup
            iload 4 /* bits */
            aload 1 /* r */
            arraylength
            aload 1 /* r */
            aload 2 /* g */
            aload 3 /* b */
            iload 6 /* idx */
            invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[BI)V
            astore 5 /* colorModel */
        end local 6 // int idx
        start local 5 // java.awt.image.ColorModel colorModel
         5: .line 211
            goto 7
        end local 5 // java.awt.image.ColorModel colorModel
         6: .line 212
      StackMap locals:
      StackMap stack:
            new java.awt.image.IndexColorModel
            dup
            iload 4 /* bits */
            aload 1 /* r */
            arraylength
            aload 1 /* r */
            aload 2 /* g */
            aload 3 /* b */
            invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[B)V
            astore 5 /* colorModel */
        start local 5 // java.awt.image.ColorModel colorModel
         7: .line 216
      StackMap locals: java.awt.image.ColorModel
      StackMap stack:
            iload 4 /* bits */
            bipush 8
            if_icmpne 15
         8: .line 217
            iconst_1
            newarray 10
            astore 7 /* bandOffsets */
        start local 7 // int[] bandOffsets
         9: .line 219
            new java.awt.image.PixelInterleavedSampleModel
            dup
            iconst_0
        10: .line 220
            iconst_1
            iconst_1
            iconst_1
            iconst_1
        11: .line 221
            aload 7 /* bandOffsets */
        12: .line 219
            invokespecial java.awt.image.PixelInterleavedSampleModel.<init>:(IIIII[I)V
        13: .line 218
            astore 6 /* sampleModel */
        end local 7 // int[] bandOffsets
        start local 6 // java.awt.image.SampleModel sampleModel
        14: .line 222
            goto 19
        end local 6 // java.awt.image.SampleModel sampleModel
        15: .line 224
      StackMap locals:
      StackMap stack:
            new java.awt.image.MultiPixelPackedSampleModel
            dup
            iconst_0
        16: .line 225
            iconst_1
            iconst_1
            iload 4 /* bits */
        17: .line 224
            invokespecial java.awt.image.MultiPixelPackedSampleModel.<init>:(IIII)V
        18: .line 223
            astore 6 /* sampleModel */
        start local 6 // java.awt.image.SampleModel sampleModel
        19: .line 227
      StackMap locals: java.awt.image.SampleModel
      StackMap stack:
            new javax.imageio.ImageTypeSpecifier
            dup
            aload 5 /* colorModel */
            aload 6 /* sampleModel */
            invokespecial javax.imageio.ImageTypeSpecifier.<init>:(Ljava/awt/image/ColorModel;Ljava/awt/image/SampleModel;)V
            areturn
        end local 6 // java.awt.image.SampleModel sampleModel
        end local 5 // java.awt.image.ColorModel colorModel
        end local 4 // int bits
        end local 3 // byte[] b
        end local 2 // byte[] g
        end local 1 // byte[] r
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   20     1            r  [B
            0   20     2            g  [B
            0   20     3            b  [B
            0   20     4         bits  I
            5    6     5   colorModel  Ljava/awt/image/ColorModel;
            7   20     5   colorModel  Ljava/awt/image/ColorModel;
            4    5     6          idx  I
           14   15     6  sampleModel  Ljava/awt/image/SampleModel;
           19   20     6  sampleModel  Ljava/awt/image/SampleModel;
            9   14     7  bandOffsets  [I
    MethodParameters:
      Name  Flags
      r     
      g     
      b     
      bits  

  public java.util.Iterator<javax.imageio.ImageTypeSpecifier> getImageTypes(int);
    descriptor: (I)Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=13, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 232
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 234
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 235
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 236
            new java.lang.IndexOutOfBoundsException
            dup
            invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
            athrow
         4: .line 238
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 240
            new java.util.ArrayList
            dup
            iconst_1
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* l */
        start local 3 // java.util.List l
         6: .line 243
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            ifnull 10
         7: .line 244
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            astore 4 /* colorTable */
        start local 4 // byte[] colorTable
         8: .line 245
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
         9: .line 246
            goto 11
        end local 4 // byte[] colorTable
        10: .line 247
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            getfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
            astore 4 /* colorTable */
        start local 4 // byte[] colorTable
        11: .line 250
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* colorTable */
            ifnonnull 16
        12: .line 251
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
            ifnonnull 15
        13: .line 252
            aload 0 /* this */
            ldc "Use default color table."
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processWarningOccurred:(Ljava/lang/String;)V
        14: .line 255
            aload 0 /* this */
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.getDefaultPalette:()[B
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        15: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
            astore 4 /* colorTable */
        16: .line 262
      StackMap locals:
      StackMap stack:
            aload 4 /* colorTable */
            arraylength
            iconst_3
            idiv
            istore 5 /* length */
        start local 5 // int length
        17: .line 264
            iload 5 /* length */
            iconst_2
            if_icmpne 20
        18: .line 265
            iconst_1
            istore 6 /* bits */
        start local 6 // int bits
        19: .line 266
            goto 27
        end local 6 // int bits
      StackMap locals: int
      StackMap stack:
        20: iload 5 /* length */
            iconst_4
            if_icmpne 23
        21: .line 267
            iconst_2
            istore 6 /* bits */
        start local 6 // int bits
        22: .line 268
            goto 27
        end local 6 // int bits
      StackMap locals:
      StackMap stack:
        23: iload 5 /* length */
            bipush 8
            if_icmpeq 24
            iload 5 /* length */
            bipush 16
            if_icmpne 26
        24: .line 270
      StackMap locals:
      StackMap stack:
            iconst_4
            istore 6 /* bits */
        start local 6 // int bits
        25: .line 271
            goto 27
        end local 6 // int bits
        26: .line 273
      StackMap locals:
      StackMap stack:
            bipush 8
            istore 6 /* bits */
        start local 6 // int bits
        27: .line 275
      StackMap locals: int
      StackMap stack:
            iconst_1
            iload 6 /* bits */
            ishl
            istore 7 /* lutLength */
        start local 7 // int lutLength
        28: .line 276
            iload 7 /* lutLength */
            newarray 8
            astore 8 /* r */
        start local 8 // byte[] r
        29: .line 277
            iload 7 /* lutLength */
            newarray 8
            astore 9 /* g */
        start local 9 // byte[] g
        30: .line 278
            iload 7 /* lutLength */
            newarray 8
            astore 10 /* b */
        start local 10 // byte[] b
        31: .line 281
            iconst_0
            istore 11 /* rgbIndex */
        start local 11 // int rgbIndex
        32: .line 282
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        33: goto 38
        34: .line 283
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int int java.util.List byte[] int int int byte[] byte[] byte[] int int
      StackMap stack:
            aload 8 /* r */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        35: .line 284
            aload 9 /* g */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        36: .line 285
            aload 10 /* b */
            iload 12 /* i */
            aload 4 /* colorTable */
            iload 11 /* rgbIndex */
            iinc 11 /* rgbIndex */ 1
            baload
            bastore
        37: .line 282
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 12 /* i */
            iload 5 /* length */
            if_icmplt 34
        end local 12 // int i
        39: .line 288
            aload 3 /* l */
            aload 0 /* this */
            aload 8 /* r */
            aload 9 /* g */
            aload 10 /* b */
            iload 6 /* bits */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.createIndexed:([B[B[BI)Ljavax/imageio/ImageTypeSpecifier;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        40: .line 289
            aload 3 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 11 // int rgbIndex
        end local 10 // byte[] b
        end local 9 // byte[] g
        end local 8 // byte[] r
        end local 7 // int lutLength
        end local 6 // int bits
        end local 5 // int length
        end local 4 // byte[] colorTable
        end local 3 // java.util.List l
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   41     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   41     1  imageIndex  I
            2   41     2       index  I
            6   41     3           l  Ljava/util/List<Ljavax/imageio/ImageTypeSpecifier;>;
            8   10     4  colorTable  [B
           11   41     4  colorTable  [B
           17   41     5      length  I
           19   20     6        bits  I
           22   23     6        bits  I
           25   26     6        bits  I
           27   41     6        bits  I
           28   41     7   lutLength  I
           29   41     8           r  [B
           30   41     9           g  [B
           31   41    10           b  [B
           32   41    11    rgbIndex  I
           33   39    12           i  I
    Exceptions:
      throws javax.imageio.IIOException
    Signature: (I)Ljava/util/Iterator<Ljavax/imageio/ImageTypeSpecifier;>;
    MethodParameters:
            Name  Flags
      imageIndex  

  public javax.imageio.ImageReadParam getDefaultReadParam();
    descriptor: ()Ljavax/imageio/ImageReadParam;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 293
            new javax.imageio.ImageReadParam
            dup
            invokespecial javax.imageio.ImageReadParam.<init>:()V
            areturn
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  public javax.imageio.metadata.IIOMetadata getStreamMetadata();
    descriptor: ()Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 297
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readHeader:()V
         1: .line 298
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            areturn
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
    Exceptions:
      throws javax.imageio.IIOException

  public javax.imageio.metadata.IIOMetadata getImageMetadata(int);
    descriptor: (I)Ljavax/imageio/metadata/IIOMetadata;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 302
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         1: .line 304
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 305
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 4
         3: .line 306
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "Bad image index!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 308
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         5: .line 309
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            areturn
        end local 2 // int index
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1  imageIndex  I
            2    6     2       index  I
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private void initNext32Bits();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 315
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_0
            baload
            sipush 255
            iand
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         1: .line 316
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_1
            baload
            sipush 255
            iand
            bipush 8
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         2: .line 317
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_2
            baload
            sipush 255
            iand
            bipush 16
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         3: .line 318
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iconst_3
            baload
            bipush 24
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         4: .line 319
            aload 0 /* this */
            iconst_4
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
         5: .line 320
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private int getCode(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int codeSize
        start local 2 // int codeMask
         0: .line 329
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            iload 1 /* codeSize */
            iadd
            bipush 32
            if_icmple 2
         1: .line 330
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            ireturn
         2: .line 333
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            ishr
            iload 2 /* codeMask */
            iand
            istore 3 /* code */
        start local 3 // int code
         3: .line 334
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            iload 1 /* codeSize */
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         4: .line 337
            goto 23
         5: .line 338
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            bipush 8
            iushr
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
         6: .line 339
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            bipush 8
            isub
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         7: .line 342
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            if_icmplt 22
         8: .line 344
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
         9: .line 345
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            ifne 12
        10: .line 346
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        11: .line 347
            iload 3 /* code */
            ireturn
        12: .line 349
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            istore 4 /* left */
        start local 4 // int left
        13: .line 350
            iconst_0
            istore 5 /* off */
        start local 5 // int off
        14: .line 351
            goto 20
        15: .line 352
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iload 5 /* off */
            iload 4 /* left */
            invokeinterface javax.imageio.stream.ImageInputStream.read:([BII)I
            istore 6 /* nbytes */
        start local 6 // int nbytes
        16: .line 353
            iload 6 /* nbytes */
            iconst_m1
            if_icmpne 18
        17: .line 354
            new javax.imageio.IIOException
            dup
            ldc "Invalid block length for LZW encoded image data"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 357
      StackMap locals: int
      StackMap stack:
            iload 5 /* off */
            iload 6 /* nbytes */
            iadd
            istore 5 /* off */
        19: .line 358
            iload 4 /* left */
            iload 6 /* nbytes */
            isub
            istore 4 /* left */
        end local 6 // int nbytes
        20: .line 351
      StackMap locals:
      StackMap stack:
            iload 4 /* left */
            ifgt 15
        21: .line 360
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        end local 5 // int off
        end local 4 // int left
        22: .line 364
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            dup_x1
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
            baload
            bipush 24
            ishl
            ior
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        23: .line 337
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
            bipush 8
            if_icmplt 24
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
            ifeq 5
        24: .line 367
      StackMap locals:
      StackMap stack:
            iload 3 /* code */
            ireturn
        end local 3 // int code
        end local 2 // int codeMask
        end local 1 // int codeSize
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   25     1  codeSize  I
            0   25     2  codeMask  I
            3   25     3      code  I
           13   22     4      left  I
           14   22     5       off  I
           16   20     6    nbytes  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
          Name  Flags
      codeSize  
      codeMask  

  public void initializeStringTable(int[], byte[], byte[], int[]);
    descriptor: ([I[B[B[I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int[] prefix
        start local 2 // byte[] suffix
        start local 3 // byte[] initial
        start local 4 // int[] length
         0: .line 374
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            istore 5 /* numEntries */
        start local 5 // int numEntries
         1: .line 375
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 8
         3: .line 376
      StackMap locals: int int
      StackMap stack:
            aload 1 /* prefix */
            iload 6 /* i */
            iconst_m1
            iastore
         4: .line 377
            aload 2 /* suffix */
            iload 6 /* i */
            iload 6 /* i */
            i2b
            bastore
         5: .line 378
            aload 3 /* initial */
            iload 6 /* i */
            iload 6 /* i */
            i2b
            bastore
         6: .line 379
            aload 4 /* length */
            iload 6 /* i */
            iconst_1
            iastore
         7: .line 375
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 6 /* i */
            iload 5 /* numEntries */
            if_icmplt 3
        end local 6 // int i
         9: .line 384
            iload 5 /* numEntries */
            istore 6 /* i */
        start local 6 // int i
        10: goto 14
        11: .line 385
      StackMap locals:
      StackMap stack:
            aload 1 /* prefix */
            iload 6 /* i */
            iconst_m1
            iastore
        12: .line 386
            aload 4 /* length */
            iload 6 /* i */
            iconst_1
            iastore
        13: .line 384
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 6 /* i */
            sipush 4096
            if_icmplt 11
        end local 6 // int i
        15: .line 392
            return
        end local 5 // int numEntries
        end local 4 // int[] length
        end local 3 // byte[] initial
        end local 2 // byte[] suffix
        end local 1 // int[] prefix
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   16     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   16     1      prefix  [I
            0   16     2      suffix  [B
            0   16     3     initial  [B
            0   16     4      length  [I
            1   16     5  numEntries  I
            2    9     6           i  I
           10   15     6           i  I
    MethodParameters:
         Name  Flags
      prefix   
      suffix   
      initial  
      length   

  private void outputRow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 414
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
         1: .line 415
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            imul
         2: .line 414
            invokestatic java.lang.Math.min:(II)I
            istore 1 /* width */
        start local 1 // int width
         3: .line 416
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            istore 2 /* destX */
        start local 2 // int destX
         4: .line 418
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            iconst_1
            if_icmpne 7
         5: .line 419
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            iload 1 /* width */
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            invokevirtual java.awt.image.WritableRaster.setDataElements:(IIIILjava/lang/Object;)V
         6: .line 420
            goto 12
         7: .line 421
      StackMap locals: int int
      StackMap stack:
            iconst_0
            istore 3 /* x */
        start local 3 // int x
         8: goto 11
         9: .line 422
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            iconst_0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            iload 3 /* x */
            baload
            sipush 255
            iand
            invokevirtual java.awt.image.WritableRaster.setSample:(IIII)V
        10: .line 421
            iload 3 /* x */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
            iadd
            istore 3 /* x */
            iinc 2 /* destX */ 1
      StackMap locals:
      StackMap stack:
        11: iload 3 /* x */
            iload 1 /* width */
            if_icmplt 9
        end local 3 // int x
        12: .line 427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 19
        13: .line 428
            iconst_1
            newarray 10
            astore 3 /* bands */
        start local 3 // int[] bands
        14: .line 431
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        15: .line 432
            iload 2 /* destX */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        16: .line 433
            iload 1 /* width */
            iconst_1
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        17: .line 434
            aload 3 /* bands */
        18: .line 431
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageUpdate:(Ljava/awt/image/BufferedImage;IIIIII[I)V
        end local 3 // int[] bands
        19: .line 436
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int destX
        end local 1 // int width
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            3   20     1  width  I
            4   20     2  destX  I
            8   12     3      x  I
           14   19     3  bands  [I

  private void computeDecodeThisRow();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 439
            aload 0 /* this */
         1: .line 440
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iadd
            if_icmpge 5
         2: .line 441
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            if_icmplt 5
         3: .line 442
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iadd
            if_icmpge 5
         4: .line 443
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            irem
            ifne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageReader
         5: iconst_0
         6: .line 439
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageReader int
            putfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
         7: .line 444
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private void outputPixels(byte[], int);
    descriptor: ([BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] string
        start local 2 // int len
         0: .line 447
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
            if_icmplt 2
         1: .line 448
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
            if_icmple 3
         2: .line 449
      StackMap locals:
      StackMap stack:
            return
         3: .line 452
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 33
         5: .line 453
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            if_icmplt 7
         6: .line 454
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
            isub
            aload 1 /* string */
            iload 3 /* i */
            baload
            bastore
         7: .line 458
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
         8: .line 459
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            if_icmpne 32
         9: .line 461
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        10: .line 462
            aload 0 /* this */
            ldc 100.0
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
            i2f
            fmul
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            i2f
            fdiv
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageProgress:(F)V
        11: .line 463
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.abortRequested:()Z
            ifeq 13
        12: .line 464
            return
        13: .line 467
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.decodeThisRow:Z
            ifeq 15
        14: .line 468
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.outputRow:()V
        15: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        16: .line 472
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
            ifeq 27
        17: .line 473
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        18: .line 474
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            if_icmplt 28
        19: .line 476
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 21
        20: .line 477
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processPassComplete:(Ljava/awt/image/BufferedImage;)V
        21: .line 480
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        22: .line 481
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
            if_icmple 24
        23: .line 482
            return
        24: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        25: .line 485
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.startPass:(I)V
        26: .line 487
            goto 28
        27: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        28: .line 493
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        29: .line 494
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            idiv
            iadd
        30: .line 493
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        31: .line 495
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.computeDecodeThisRow:()V
        32: .line 452
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        33: iload 3 /* i */
            iload 2 /* len */
            if_icmplt 5
        end local 3 // int i
        34: .line 498
            return
        end local 2 // int len
        end local 1 // byte[] string
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   35     0    this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   35     1  string  [B
            0   35     2     len  I
            4   34     3       i  I
    MethodParameters:
        Name  Flags
      string  
      len     

  private void readHeader();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 503
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
            ifeq 2
         1: .line 504
            return
         2: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 4
         3: .line 507
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.gif.GIFStreamMetadata
            dup
            invokespecial com.sun.imageio.plugins.gif.GIFStreamMetadata.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         5: .line 514
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            getstatic java.nio.ByteOrder.LITTLE_ENDIAN:Ljava/nio/ByteOrder;
            invokeinterface javax.imageio.stream.ImageInputStream.setByteOrder:(Ljava/nio/ByteOrder;)V
         6: .line 516
            bipush 6
            newarray 8
            astore 1 /* signature */
        start local 1 // byte[] signature
         7: .line 517
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 1 /* signature */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
         8: .line 519
            new java.lang.StringBuilder
            dup
            iconst_3
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* version */
        start local 2 // java.lang.StringBuilder version
         9: .line 520
            aload 2 /* version */
            aload 1 /* signature */
            iconst_3
            baload
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        10: .line 521
            aload 2 /* version */
            aload 1 /* signature */
            iconst_4
            baload
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        11: .line 522
            aload 2 /* version */
            aload 1 /* signature */
            iconst_5
            baload
            i2c
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        12: .line 523
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 2 /* version */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.version:Ljava/lang/String;
        13: .line 525
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.logicalScreenWidth:I
        14: .line 526
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.logicalScreenHeight:I
        15: .line 528
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* packedFields */
        start local 3 // int packedFields
        16: .line 529
            iload 3 /* packedFields */
            sipush 128
            iand
            ifeq 17
            iconst_1
            goto 18
      StackMap locals: byte[] java.lang.StringBuilder int
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* globalColorTableFlag */
        start local 4 // boolean globalColorTableFlag
        19: .line 530
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iload 3 /* packedFields */
            iconst_4
            ishr
            bipush 7
            iand
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.colorResolution:I
        20: .line 531
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iload 3 /* packedFields */
            bipush 8
            iand
            ifeq 21
            iconst_1
            goto 22
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader byte[] java.lang.StringBuilder int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFStreamMetadata
        21: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader byte[] java.lang.StringBuilder int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFStreamMetadata int
        22: putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.sortFlag:Z
        23: .line 532
            iconst_1
            iload 3 /* packedFields */
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            istore 5 /* numGCTEntries */
        start local 5 // int numGCTEntries
        24: .line 534
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.backgroundColorIndex:I
        25: .line 535
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.pixelAspectRatio:I
        26: .line 537
            iload 4 /* globalColorTableFlag */
            ifeq 30
        27: .line 538
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            iconst_3
            iload 5 /* numGCTEntries */
            imul
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
        28: .line 539
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            getfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        29: .line 540
            goto 31
        30: .line 541
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFStreamMetadata.globalColorTable:[B
        31: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // int numGCTEntries
        end local 4 // boolean globalColorTableFlag
        end local 3 // int packedFields
        end local 2 // java.lang.StringBuilder version
        end local 1 // byte[] signature
        32: .line 546
            goto 35
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: java.io.IOException
        33: astore 1 /* e */
        start local 1 // java.io.IOException e
        34: .line 547
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading header!"
            aload 1 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        35: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
        36: .line 551
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   37     0                  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            7   32     1             signature  [B
            9   32     2               version  Ljava/lang/StringBuilder;
           16   32     3          packedFields  I
           19   32     4  globalColorTableFlag  Z
           24   32     5         numGCTEntries  I
           34   35     1                     e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    32      33  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private boolean skipImage();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 559
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 1 /* blockType */
        start local 1 // int blockType
         1: .line 561
            iload 1 /* blockType */
            bipush 44
            if_icmpne 14
         2: .line 562
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            bipush 8
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
         3: .line 564
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* packedFields */
        start local 2 // int packedFields
         4: .line 565
            iload 2 /* packedFields */
            sipush 128
            iand
            ifeq 7
         5: .line 567
            iload 2 /* packedFields */
            bipush 7
            iand
            iconst_1
            iadd
            istore 3 /* bits */
        start local 3 // int bits
         6: .line 568
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iconst_3
            iconst_1
            iload 3 /* bits */
            ishl
            imul
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        end local 3 // int bits
         7: .line 571
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iconst_1
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
         8: .line 573
            iconst_0
            istore 3 /* length */
        start local 3 // int length
         9: .line 575
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* length */
        10: .line 576
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 3 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        11: .line 577
            iload 3 /* length */
        12: .line 574
            ifgt 9
        13: .line 579
            iconst_1
            ireturn
        end local 3 // int length
        end local 2 // int packedFields
        14: .line 580
      StackMap locals:
      StackMap stack:
            iload 1 /* blockType */
            bipush 59
            if_icmpne 16
        15: .line 581
            iconst_0
            ireturn
        16: .line 582
      StackMap locals:
      StackMap stack:
            iload 1 /* blockType */
            bipush 33
            if_icmpne 24
        17: .line 583
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        18: .line 585
            iconst_0
            istore 2 /* length */
        start local 2 // int length
        19: .line 587
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        20: .line 588
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        21: .line 589
            iload 2 /* length */
        22: .line 586
            ifgt 19
        end local 2 // int length
        23: .line 590
            goto 0
      StackMap locals:
      StackMap stack:
        24: iload 1 /* blockType */
            ifne 26
        25: .line 592
            iconst_0
            ireturn
        26: .line 594
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* length */
        start local 2 // int length
        27: .line 596
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        28: .line 597
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
        29: .line 598
            iload 2 /* length */
        30: .line 595
            ifgt 27
        end local 2 // int length
        end local 1 // int blockType
        31: .line 558
            goto 0
        32: .line 601
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: java.io.EOFException
            pop
        33: .line 602
            iconst_0
            ireturn
        34: .line 603
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* e */
        start local 1 // java.io.IOException e
        35: .line 604
            new javax.imageio.IIOException
            dup
            ldc "I/O error locating image!"
            aload 1 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException e
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   36     0          this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            1   31     1     blockType  I
            4   14     2  packedFields  I
            6    7     3          bits  I
            9   14     3        length  I
           19   23     2        length  I
           27   31     2        length  I
           35   36     1             e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0    13      32  Class java.io.EOFException
          14    15      32  Class java.io.EOFException
          16    25      32  Class java.io.EOFException
          26    32      32  Class java.io.EOFException
           0    13      34  Class java.io.IOException
          14    15      34  Class java.io.IOException
          16    25      34  Class java.io.IOException
          26    32      34  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private int locateImage(int);
    descriptor: (I)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
         0: .line 609
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readHeader:()V
         1: .line 613
            iload 1 /* imageIndex */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* index */
        start local 2 // int index
         2: .line 616
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            iload 2 /* index */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.Long
            astore 3 /* l */
        start local 3 // java.lang.Long l
         3: .line 617
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 3 /* l */
            invokevirtual java.lang.Long.longValue:()J
            invokeinterface javax.imageio.stream.ImageInputStream.seek:(J)V
         4: .line 620
            goto 12
         5: .line 621
      StackMap locals: int java.lang.Long
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.skipImage:()Z
            ifne 9
         6: .line 622
            iinc 2 /* index */ -1
         7: .line 623
            iload 2 /* index */
         8: ireturn
         9: .line 626
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 4 /* l1 */
        start local 4 // java.lang.Long l1
        10: .line 627
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
            aload 4 /* l1 */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        11: .line 628
            iinc 2 /* index */ 1
        end local 4 // java.lang.Long l1
        12: .line 620
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            iload 1 /* imageIndex */
            if_icmplt 5
        end local 3 // java.lang.Long l
        end local 2 // int index
        13: .line 630
            goto 16
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int
      StackMap stack: java.io.IOException
        14: astore 2 /* e */
        start local 2 // java.io.IOException e
        15: .line 631
            new javax.imageio.IIOException
            dup
            ldc "Couldn't seek!"
            aload 2 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 2 // java.io.IOException e
        16: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
            iload 1 /* imageIndex */
            if_icmpeq 18
        17: .line 635
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        18: .line 637
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
        19: .line 638
            iload 1 /* imageIndex */
            ireturn
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   20     1  imageIndex  I
            2   13     2       index  I
            3   13     3           l  Ljava/lang/Long;
           10   12     4          l1  Ljava/lang/Long;
           15   16     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           1     8      14  Class java.io.IOException
           9    13      14  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  

  private byte[] concatenateBlocks();
    descriptor: ()[B
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 643
            iconst_0
            newarray 8
            astore 1 /* data */
        start local 1 // byte[] data
         1: .line 645
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 2 /* length */
        start local 2 // int length
         2: .line 646
            iload 2 /* length */
            ifne 4
         3: .line 647
            goto 9
         4: .line 649
      StackMap locals: int
      StackMap stack:
            aload 1 /* data */
            arraylength
            iload 2 /* length */
            iadd
            newarray 8
            astore 3 /* newData */
        start local 3 // byte[] newData
         5: .line 650
            aload 1 /* data */
            iconst_0
            aload 3 /* newData */
            iconst_0
            aload 1 /* data */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 651
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 3 /* newData */
            aload 1 /* data */
            arraylength
            iload 2 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([BII)V
         7: .line 652
            aload 3 /* newData */
            astore 1 /* data */
        end local 3 // byte[] newData
        end local 2 // int length
         8: .line 644
            goto 1
         9: .line 655
      StackMap locals:
      StackMap stack:
            aload 1 /* data */
            areturn
        end local 1 // byte[] data
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            1   10     1     data  [B
            2    8     2   length  I
            5    8     3  newData  [B
    Exceptions:
      throws java.io.IOException

  private void readMetadata();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 660
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 661
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.sun.imageio.plugins.gif.GIFImageMetadata
            dup
            invokespecial com.sun.imageio.plugins.gif.GIFImageMetadata.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         3: .line 668
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lstore 1 /* startPosition */
        start local 1 // long startPosition
         4: .line 670
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 3 /* blockType */
        start local 3 // int blockType
         5: .line 671
            iload 3 /* blockType */
            bipush 44
            if_icmpne 36
         6: .line 672
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         7: .line 673
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
         8: .line 672
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageLeftPosition:I
         9: .line 674
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        10: .line 675
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        11: .line 674
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageTopPosition:I
        12: .line 676
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
        13: .line 677
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
        14: .line 679
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 4 /* idPackedFields */
        start local 4 // int idPackedFields
        15: .line 681
            iload 4 /* idPackedFields */
            sipush 128
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals: int int
      StackMap stack:
        16: iconst_0
        17: .line 680
      StackMap locals:
      StackMap stack: int
            istore 5 /* localColorTableFlag */
        start local 5 // boolean localColorTableFlag
        18: .line 682
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iload 4 /* idPackedFields */
            bipush 64
            iand
            ifeq 19
            iconst_1
            goto 20
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        19: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
        20: putfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
        21: .line 683
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iload 4 /* idPackedFields */
            bipush 32
            iand
            ifeq 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        22: iconst_0
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
        23: putfield com.sun.imageio.plugins.gif.GIFImageMetadata.sortFlag:Z
        24: .line 684
            iconst_1
            iload 4 /* idPackedFields */
            bipush 7
            iand
            iconst_1
            iadd
            ishl
            istore 6 /* numLCTEntries */
        start local 6 // int numLCTEntries
        25: .line 686
            iload 5 /* localColorTableFlag */
            ifeq 31
        26: .line 688
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        27: .line 689
            iconst_3
            iload 6 /* numLCTEntries */
            imul
            newarray 8
        28: .line 688
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
        29: .line 690
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        30: .line 691
            goto 32
        31: .line 692
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.localColorTable:[B
        32: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        33: .line 697
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.getStreamPosition:()J
            lload 1 /* startPosition */
            lsub
            l2i
        34: .line 696
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadataLength:I
        35: .line 700
            return
        end local 6 // int numLCTEntries
        end local 5 // boolean localColorTableFlag
        end local 4 // int idPackedFields
        36: .line 701
      StackMap locals:
      StackMap stack:
            iload 3 /* blockType */
            bipush 33
            if_icmpne 127
        37: .line 702
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 4 /* label */
        start local 4 // int label
        38: .line 704
            iload 4 /* label */
            sipush 249
            if_icmpne 58
        39: .line 705
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        40: .line 706
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* gcePackedFields */
        start local 5 // int gcePackedFields
        41: .line 707
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        42: .line 708
            iload 5 /* gcePackedFields */
            iconst_2
            ishr
            iconst_3
            iand
        43: .line 707
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.disposalMethod:I
        44: .line 709
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        45: .line 710
            iload 5 /* gcePackedFields */
            iconst_2
            iand
            ifeq 46
            iconst_1
            goto 47
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        46: iconst_0
        47: .line 709
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.userInputFlag:Z
        48: .line 711
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        49: .line 712
            iload 5 /* gcePackedFields */
            iconst_1
            iand
            ifeq 50
            iconst_1
            goto 51
      StackMap locals:
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata
        50: iconst_0
        51: .line 711
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int
      StackMap stack: com.sun.imageio.plugins.gif.GIFImageMetadata int
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorFlag:Z
        52: .line 714
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.delayTime:I
        53: .line 715
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        54: .line 716
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        55: .line 715
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.transparentColorIndex:I
        56: .line 718
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        end local 5 // int gcePackedFields
        57: .line 719
            goto 4
      StackMap locals:
      StackMap stack:
        58: iload 4 /* label */
            iconst_1
            if_icmpne 87
        59: .line 720
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            pop
        60: .line 721
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            iconst_1
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.hasPlainTextExtension:Z
        61: .line 722
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        62: .line 723
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        63: .line 722
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridLeft:I
        64: .line 724
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        65: .line 725
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        66: .line 724
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridTop:I
        67: .line 726
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        68: .line 727
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        69: .line 726
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridWidth:I
        70: .line 728
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        71: .line 729
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedShort:()I
        72: .line 728
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textGridHeight:I
        73: .line 730
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        74: .line 731
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        75: .line 730
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.characterCellWidth:I
        76: .line 732
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        77: .line 733
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        78: .line 732
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.characterCellHeight:I
        79: .line 734
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        80: .line 735
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        81: .line 734
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textForegroundColor:I
        82: .line 736
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
        83: .line 737
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
        84: .line 736
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.textBackgroundColor:I
        85: .line 738
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.text:[B
        86: .line 739
            goto 4
      StackMap locals:
      StackMap stack:
        87: iload 4 /* label */
            sipush 254
            if_icmpne 93
        88: .line 740
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            astore 5 /* comment */
        start local 5 // byte[] comment
        89: .line 741
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
            ifnonnull 91
        90: .line 742
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
        91: .line 744
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.comments:Ljava/util/List;
            aload 5 /* comment */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // byte[] comment
        92: .line 745
            goto 4
      StackMap locals:
      StackMap stack:
        93: iload 4 /* label */
            sipush 255
            if_icmpne 121
        94: .line 746
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* blockSize */
        start local 5 // int blockSize
        95: .line 747
            bipush 8
            newarray 8
            astore 6 /* applicationID */
        start local 6 // byte[] applicationID
        96: .line 748
            iconst_3
            newarray 8
            astore 7 /* authCode */
        start local 7 // byte[] authCode
        97: .line 751
            iload 5 /* blockSize */
            newarray 8
            astore 8 /* blockData */
        start local 8 // byte[] blockData
        98: .line 752
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 8 /* blockData */
            invokeinterface javax.imageio.stream.ImageInputStream.readFully:([B)V
        99: .line 754
            aload 0 /* this */
            aload 8 /* blockData */
            iconst_0
            aload 6 /* applicationID */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.copyData:([BI[B)I
            istore 9 /* offset */
        start local 9 // int offset
       100: .line 755
            aload 0 /* this */
            aload 8 /* blockData */
            iload 9 /* offset */
            aload 7 /* authCode */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.copyData:([BI[B)I
            istore 9 /* offset */
       101: .line 757
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.concatenateBlocks:()[B
            astore 10 /* applicationData */
        start local 10 // byte[] applicationData
       102: .line 759
            iload 9 /* offset */
            iload 5 /* blockSize */
            if_icmpge 111
       103: .line 760
            iload 5 /* blockSize */
            iload 9 /* offset */
            isub
            istore 11 /* len */
        start local 11 // int len
       104: .line 762
            iload 11 /* len */
            aload 10 /* applicationData */
            arraylength
            iadd
            newarray 8
       105: .line 761
            astore 12 /* data */
        start local 12 // byte[] data
       106: .line 764
            aload 8 /* blockData */
            iload 9 /* offset */
            aload 12 /* data */
            iconst_0
            iload 11 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       107: .line 765
            aload 10 /* applicationData */
            iconst_0
            aload 12 /* data */
            iload 11 /* len */
       108: .line 766
            aload 10 /* applicationData */
            arraylength
       109: .line 765
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
       110: .line 768
            aload 12 /* data */
            astore 10 /* applicationData */
        end local 12 // byte[] data
        end local 11 // int len
       111: .line 772
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int int byte[] byte[] byte[] int byte[]
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
            ifnonnull 117
       112: .line 773
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
       113: .line 774
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
       114: .line 775
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
       115: .line 774
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.authenticationCodes:Ljava/util/List;
       116: .line 776
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationData:Ljava/util/List;
       117: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationIDs:Ljava/util/List;
            aload 6 /* applicationID */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       118: .line 779
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.authenticationCodes:Ljava/util/List;
            aload 7 /* authCode */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
       119: .line 780
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.applicationData:Ljava/util/List;
            aload 10 /* applicationData */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // byte[] applicationData
        end local 9 // int offset
        end local 8 // byte[] blockData
        end local 7 // byte[] authCode
        end local 6 // byte[] applicationID
        end local 5 // int blockSize
       120: .line 781
            goto 4
       121: .line 783
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader long int int
      StackMap stack:
            iconst_0
            istore 5 /* length */
        start local 5 // int length
       122: .line 785
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            istore 5 /* length */
       123: .line 786
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            iload 5 /* length */
            invokeinterface javax.imageio.stream.ImageInputStream.skipBytes:(I)I
            pop
       124: .line 787
            iload 5 /* length */
       125: .line 784
            ifgt 122
        end local 5 // int length
        end local 4 // int label
       126: .line 789
            goto 4
      StackMap locals:
      StackMap stack:
       127: iload 3 /* blockType */
            bipush 59
            if_icmpne 131
       128: .line 790
            new java.lang.IndexOutOfBoundsException
            dup
       129: .line 791
            ldc "Attempt to read past end of image sequence!"
       130: .line 790
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
       131: .line 793
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected block type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       132: .line 794
            iload 3 /* blockType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "!"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       133: .line 793
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // int blockType
        end local 1 // long startPosition
       134: .line 797
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader
      StackMap stack: javax.imageio.IIOException
            astore 1 /* iioe */
        start local 1 // javax.imageio.IIOException iioe
       135: .line 798
            aload 1 /* iioe */
            athrow
        end local 1 // javax.imageio.IIOException iioe
       136: .line 799
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 1 /* ioe */
        start local 1 // java.io.IOException ioe
       137: .line 800
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading image metadata!"
            aload 1 /* ioe */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.io.IOException ioe
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0  138     0                 this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            4  134     1        startPosition  J
            5  134     3            blockType  I
           15   36     4       idPackedFields  I
           18   36     5  localColorTableFlag  Z
           25   36     6        numLCTEntries  I
           38  126     4                label  I
           41   57     5      gcePackedFields  I
           89   92     5              comment  [B
           95  120     5            blockSize  I
           96  120     6        applicationID  [B
           97  120     7             authCode  [B
           98  120     8            blockData  [B
          100  120     9               offset  I
          102  120    10      applicationData  [B
          104  111    11                  len  I
          106  111    12                 data  [B
          122  126     5               length  I
          135  136     1                 iioe  Ljavax/imageio/IIOException;
          137  138     1                  ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2    35     134  Class javax.imageio.IIOException
          36   134     134  Class javax.imageio.IIOException
           2    35     136  Class java.io.IOException
          36   134     136  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException

  private int copyData(byte[], int, byte[]);
    descriptor: ([BI[B)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // byte[] src
        start local 2 // int offset
        start local 3 // byte[] dst
         0: .line 805
            aload 3 /* dst */
            arraylength
            istore 4 /* len */
        start local 4 // int len
         1: .line 806
            aload 1 /* src */
            arraylength
            iload 2 /* offset */
            isub
            istore 5 /* rest */
        start local 5 // int rest
         2: .line 807
            iload 4 /* len */
            iload 5 /* rest */
            if_icmple 4
         3: .line 808
            iload 5 /* rest */
            istore 4 /* len */
         4: .line 810
      StackMap locals: int int
      StackMap stack:
            aload 1 /* src */
            iload 2 /* offset */
            aload 3 /* dst */
            iconst_0
            iload 4 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         5: .line 811
            iload 2 /* offset */
            iload 4 /* len */
            iadd
            ireturn
        end local 5 // int rest
        end local 4 // int len
        end local 3 // byte[] dst
        end local 2 // int offset
        end local 1 // byte[] src
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0    6     1     src  [B
            0    6     2  offset  I
            0    6     3     dst  [B
            1    6     4     len  I
            2    6     5    rest  I
    MethodParameters:
        Name  Flags
      src     
      offset  
      dst     

  private void startPass(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=14, locals=6, args_size=2
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int pass
         0: .line 815
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateListeners:Ljava/util/List;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.interlaceFlag:Z
            ifne 2
         1: .line 816
      StackMap locals:
      StackMap stack:
            return
         2: .line 819
      StackMap locals:
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceOffset:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            istore 2 /* y */
        start local 2 // int y
         3: .line 820
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.interlaceIncrement:[I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
            iaload
            istore 3 /* yStep */
        start local 3 // int yStep
         4: .line 823
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
         5: .line 824
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationOffset:Ljava/awt/Point;
         6: .line 825
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
         7: .line 826
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
         8: .line 827
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
         9: .line 828
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
        10: .line 827
            iadd
        11: .line 828
            iconst_1
        12: .line 827
            isub
        13: .line 829
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        14: .line 830
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
        15: .line 829
            iadd
        16: .line 830
            iconst_1
        17: .line 829
            isub
        18: .line 831
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
        19: .line 832
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
        20: .line 833
            iconst_0
        21: .line 834
            iload 2 /* y */
        22: .line 835
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.width:I
        23: .line 836
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.height:I
            iload 3 /* yStep */
            iadd
            iconst_1
            isub
            iload 3 /* yStep */
            idiv
        24: .line 837
            iconst_1
        25: .line 838
            iload 3 /* yStep */
        26: .line 823
            invokestatic com.sun.imageio.plugins.common.ReaderUtil.computeUpdatedPixels:(Ljava/awt/Rectangle;Ljava/awt/Point;IIIIIIIIIIII)[I
        27: .line 822
            astore 4 /* vals */
        start local 4 // int[] vals
        28: .line 841
            aload 0 /* this */
            aload 4 /* vals */
            iconst_1
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.updateMinY:I
        29: .line 842
            aload 0 /* this */
            aload 4 /* vals */
            iconst_5
            iaload
            putfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        30: .line 845
            iconst_1
            newarray 10
            astore 5 /* bands */
        start local 5 // int[] bands
        31: .line 847
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        32: .line 848
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        33: .line 849
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
        34: .line 850
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
        35: .line 851
            iconst_0
        36: .line 852
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateMinY:I
        37: .line 853
            iconst_1
        38: .line 854
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.updateYStep:I
        39: .line 855
            aload 5 /* bands */
        40: .line 847
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processPassStarted:(Ljava/awt/image/BufferedImage;IIIIIII[I)V
        41: .line 856
            return
        end local 5 // int[] bands
        end local 4 // int[] vals
        end local 3 // int yStep
        end local 2 // int y
        end local 1 // int pass
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   42     0   this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0   42     1   pass  I
            3   42     2      y  I
            4   42     3  yStep  I
           28   42     4   vals  [I
           31   42     5  bands  [I
    MethodParameters:
      Name  Flags
      pass  

  public java.awt.image.BufferedImage read(int, javax.imageio.ImageReadParam);
    descriptor: (ILjavax/imageio/ImageReadParam;)Ljava/awt/image/BufferedImage;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=20, args_size=3
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
        start local 1 // int imageIndex
        start local 2 // javax.imageio.ImageReadParam param
         0: .line 860
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            ifnonnull 2
         1: .line 861
            new java.lang.IllegalStateException
            dup
            ldc "Input not set!"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 863
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.checkIndex:(I)V
         3: .line 865
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.locateImage:(I)I
            istore 3 /* index */
        start local 3 // int index
         4: .line 866
            iload 3 /* index */
            iload 1 /* imageIndex */
            if_icmpeq 6
         5: .line 867
            new java.lang.IndexOutOfBoundsException
            dup
            ldc "imageIndex out of bounds!"
            invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 870
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.readMetadata:()V
         7: .line 873
            aload 2 /* param */
            ifnonnull 9
         8: .line 874
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getDefaultReadParam:()Ljavax/imageio/ImageReadParam;
            astore 2 /* param */
         9: .line 878
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getImageTypes:(I)Ljava/util/Iterator;
            astore 4 /* imageTypes */
        start local 4 // java.util.Iterator imageTypes
        10: .line 879
            aload 0 /* this */
            aload 2 /* param */
        11: .line 880
            aload 4 /* imageTypes */
        12: .line 881
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
        13: .line 882
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
        14: .line 879
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.getDestination:(Ljavax/imageio/ImageReadParam;Ljava/util/Iterator;II)Ljava/awt/image/BufferedImage;
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        15: .line 883
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
            iconst_0
            iconst_0
            invokevirtual java.awt.image.BufferedImage.getWritableTile:(II)Ljava/awt/image/WritableRaster;
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        16: .line 884
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageWidth:I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
        17: .line 885
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
            getfield com.sun.imageio.plugins.gif.GIFImageMetadata.imageHeight:I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        18: .line 886
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        19: .line 887
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        20: .line 888
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        21: .line 889
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        22: .line 894
            aload 0 /* this */
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
        23: .line 895
            aload 0 /* this */
            new java.awt.Rectangle
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
        24: .line 896
            aload 2 /* param */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        25: .line 897
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
        26: .line 896
            invokestatic com.sun.imageio.plugins.gif.GIFImageReader.computeRegions:(Ljavax/imageio/ImageReadParam;IILjava/awt/image/BufferedImage;Ljava/awt/Rectangle;Ljava/awt/Rectangle;)V
        27: .line 898
            aload 0 /* this */
            new java.awt.Point
            dup
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.x:I
        28: .line 899
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            invokespecial java.awt.Point.<init>:(II)V
        29: .line 898
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destinationOffset:Ljava/awt/Point;
        30: .line 901
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceXSubsampling:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceXSubsampling:I
        31: .line 902
            aload 0 /* this */
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceYSubsampling:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
        32: .line 903
            aload 0 /* this */
        33: .line 904
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMinProgressivePass:()I
            iconst_0
            invokestatic java.lang.Math.max:(II)I
        34: .line 903
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMinProgressivePass:I
        35: .line 905
            aload 0 /* this */
        36: .line 906
            aload 2 /* param */
            invokevirtual javax.imageio.ImageReadParam.getSourceMaxProgressivePass:()I
            iconst_3
            invokestatic java.lang.Math.min:(II)I
        37: .line 905
            putfield com.sun.imageio.plugins.gif.GIFImageReader.sourceMaxProgressivePass:I
        38: .line 908
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.destinationRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
        39: .line 909
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceRegion:Ljava/awt/Rectangle;
            getfield java.awt.Rectangle.y:I
            isub
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.sourceYSubsampling:I
            idiv
            iadd
        40: .line 908
            putfield com.sun.imageio.plugins.gif.GIFImageReader.destY:I
        41: .line 910
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.computeDecodeThisRow:()V
        42: .line 912
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.clearAbortRequest:()V
        43: .line 914
            aload 0 /* this */
            iload 1 /* imageIndex */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageStarted:(I)V
        44: .line 915
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.abortRequested:()Z
            ifeq 47
        45: .line 916
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processReadAborted:()V
        46: .line 917
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
            areturn
        47: .line 919
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.startPass:(I)V
        48: .line 921
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
            newarray 8
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowBuf:[B
        49: .line 925
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
        50: .line 927
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            if_icmplt 51
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            bipush 8
            if_icmple 52
        51: .line 928
      StackMap locals:
      StackMap stack:
            new javax.imageio.IIOException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Bad code size:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        52: .line 932
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            invokeinterface javax.imageio.stream.ImageInputStream.readUnsignedByte:()I
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
        53: .line 933
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
            istore 5 /* left */
        start local 5 // int left
        54: .line 934
            iconst_0
            istore 6 /* off */
        start local 6 // int off
        55: .line 935
            goto 61
        56: .line 936
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.stream:Ljavax/imageio/stream/ImageInputStream;
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.block:[B
            iload 6 /* off */
            iload 5 /* left */
            invokeinterface javax.imageio.stream.ImageInputStream.read:([BII)I
            istore 7 /* nbytes */
        start local 7 // int nbytes
        57: .line 937
            iload 7 /* nbytes */
            iconst_m1
            if_icmpne 59
        58: .line 938
            new javax.imageio.IIOException
            dup
            ldc "Invalid block length for LZW encoded image data"
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;)V
            athrow
        59: .line 941
      StackMap locals: int
      StackMap stack:
            iload 5 /* left */
            iload 7 /* nbytes */
            isub
            istore 5 /* left */
        60: .line 942
            iload 6 /* off */
            iload 7 /* nbytes */
            iadd
            istore 6 /* off */
        end local 7 // int nbytes
        61: .line 935
      StackMap locals:
      StackMap stack:
            iload 5 /* left */
            ifgt 56
        62: .line 945
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
        63: .line 946
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
        64: .line 947
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        65: .line 948
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        66: .line 951
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initNext32Bits:()V
        67: .line 953
            aload 0 /* this */
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            putfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
        68: .line 954
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
            iconst_1
            iadd
            putfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
        69: .line 956
            iconst_0
            istore 8 /* oldCode */
        start local 8 // int oldCode
        70: .line 958
            sipush 4096
            newarray 10
            astore 9 /* prefix */
        start local 9 // int[] prefix
        71: .line 959
            sipush 4096
            newarray 8
            astore 10 /* suffix */
        start local 10 // byte[] suffix
        72: .line 960
            sipush 4096
            newarray 8
            astore 11 /* initial */
        start local 11 // byte[] initial
        73: .line 961
            sipush 4096
            newarray 10
            astore 12 /* length */
        start local 12 // int[] length
        74: .line 962
            sipush 4096
            newarray 8
            astore 13 /* string */
        start local 13 // byte[] string
        75: .line 964
            aload 0 /* this */
            aload 9 /* prefix */
            aload 10 /* suffix */
            aload 11 /* initial */
            aload 12 /* length */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initializeStringTable:([I[B[B[I)V
        76: .line 965
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            iconst_2
            iadd
            istore 14 /* tableIndex */
        start local 14 // int tableIndex
        77: .line 966
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            iadd
            istore 15 /* codeSize */
        start local 15 // int codeSize
        78: .line 967
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        start local 16 // int codeMask
        79: .line 970
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator int int top int int[] byte[] byte[] int[] byte[] int int int
      StackMap stack:
            aload 0 /* this */
            iload 15 /* codeSize */
            iload 16 /* codeMask */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getCode:(II)I
            istore 7 /* code */
        start local 7 // int code
        80: .line 972
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.clearCode:I
            if_icmpne 90
        81: .line 973
            aload 0 /* this */
            aload 9 /* prefix */
            aload 10 /* suffix */
            aload 11 /* initial */
            aload 12 /* length */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.initializeStringTable:([I[B[B[I)V
        82: .line 974
            iconst_1
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            ishl
            iconst_2
            iadd
            istore 14 /* tableIndex */
        83: .line 975
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.initCodeSize:I
            iconst_1
            iadd
            istore 15 /* codeSize */
        84: .line 976
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        85: .line 978
            aload 0 /* this */
            iload 15 /* codeSize */
            iload 16 /* codeMask */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.getCode:(II)I
            istore 7 /* code */
        86: .line 979
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            if_icmpne 111
        87: .line 981
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageComplete:()V
        88: .line 982
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        89: areturn
        90: .line 984
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator int int int int int[] byte[] byte[] int[] byte[] int int int
      StackMap stack:
            iload 7 /* code */
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.eofCode:I
            if_icmpne 94
        91: .line 986
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processImageComplete:()V
        92: .line 987
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        93: areturn
        94: .line 990
      StackMap locals:
      StackMap stack:
            iload 7 /* code */
            iload 14 /* tableIndex */
            if_icmpge 97
        95: .line 991
            iload 7 /* code */
            istore 17 /* newSuffixIndex */
        start local 17 // int newSuffixIndex
        96: .line 992
            goto 100
        end local 17 // int newSuffixIndex
        97: .line 993
      StackMap locals:
      StackMap stack:
            iload 8 /* oldCode */
            istore 17 /* newSuffixIndex */
        start local 17 // int newSuffixIndex
        98: .line 994
            iload 7 /* code */
            iload 14 /* tableIndex */
            if_icmpeq 100
        99: .line 997
            aload 0 /* this */
            ldc "Out-of-sequence code!"
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processWarningOccurred:(Ljava/lang/String;)V
       100: .line 1001
      StackMap locals: int
      StackMap stack:
            iload 14 /* tableIndex */
            istore 18 /* ti */
        start local 18 // int ti
       101: .line 1002
            iload 8 /* oldCode */
            istore 19 /* oc */
        start local 19 // int oc
       102: .line 1004
            aload 9 /* prefix */
            iload 18 /* ti */
            iload 19 /* oc */
            iastore
       103: .line 1005
            aload 10 /* suffix */
            iload 18 /* ti */
            aload 11 /* initial */
            iload 17 /* newSuffixIndex */
            baload
            bastore
       104: .line 1006
            aload 11 /* initial */
            iload 18 /* ti */
            aload 11 /* initial */
            iload 19 /* oc */
            baload
            bastore
       105: .line 1007
            aload 12 /* length */
            iload 18 /* ti */
            aload 12 /* length */
            iload 19 /* oc */
            iaload
            iconst_1
            iadd
            iastore
       106: .line 1009
            iinc 14 /* tableIndex */ 1
       107: .line 1010
            iload 14 /* tableIndex */
            iconst_1
            iload 15 /* codeSize */
            ishl
            if_icmpne 111
       108: .line 1011
            iload 14 /* tableIndex */
            sipush 4096
            if_icmpge 111
       109: .line 1012
            iinc 15 /* codeSize */ 1
       110: .line 1013
            iconst_1
            iload 15 /* codeSize */
            ishl
            iconst_1
            isub
            istore 16 /* codeMask */
        end local 19 // int oc
        end local 18 // int ti
        end local 17 // int newSuffixIndex
       111: .line 1018
      StackMap locals:
      StackMap stack:
            iload 7 /* code */
            istore 17 /* c */
        start local 17 // int c
       112: .line 1019
            aload 12 /* length */
            iload 17 /* c */
            iaload
            istore 18 /* len */
        start local 18 // int len
       113: .line 1020
            iload 18 /* len */
            iconst_1
            isub
            istore 19 /* i */
        start local 19 // int i
       114: goto 118
       115: .line 1021
      StackMap locals: int int int
      StackMap stack:
            aload 13 /* string */
            iload 19 /* i */
            aload 10 /* suffix */
            iload 17 /* c */
            baload
            bastore
       116: .line 1022
            aload 9 /* prefix */
            iload 17 /* c */
            iaload
            istore 17 /* c */
       117: .line 1020
            iinc 19 /* i */ -1
      StackMap locals:
      StackMap stack:
       118: iload 19 /* i */
            ifge 115
        end local 19 // int i
       119: .line 1025
            aload 0 /* this */
            aload 13 /* string */
            iload 18 /* len */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.outputPixels:([BI)V
       120: .line 1026
            iload 7 /* code */
            istore 8 /* oldCode */
        end local 18 // int len
        end local 17 // int c
       121: .line 1027
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.abortRequested:()Z
            ifeq 79
       122: .line 1029
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.processReadAborted:()V
       123: .line 1030
            aload 0 /* this */
            getfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
       124: areturn
        end local 16 // int codeMask
        end local 15 // int codeSize
        end local 14 // int tableIndex
        end local 13 // byte[] string
        end local 12 // int[] length
        end local 11 // byte[] initial
        end local 10 // byte[] suffix
        end local 9 // int[] prefix
        end local 8 // int oldCode
        end local 7 // int code
        end local 6 // int off
        end local 5 // int left
       125: .line 1031
      StackMap locals: com.sun.imageio.plugins.gif.GIFImageReader int javax.imageio.ImageReadParam int java.util.Iterator
      StackMap stack: java.io.IOException
            astore 5 /* e */
        start local 5 // java.io.IOException e
       126: .line 1032
            new javax.imageio.IIOException
            dup
            ldc "I/O error reading image!"
            aload 5 /* e */
            invokespecial javax.imageio.IIOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.io.IOException e
        end local 4 // java.util.Iterator imageTypes
        end local 3 // int index
        end local 2 // javax.imageio.ImageReadParam param
        end local 1 // int imageIndex
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0  127     0            this  Lcom/sun/imageio/plugins/gif/GIFImageReader;
            0  127     1      imageIndex  I
            0  127     2           param  Ljavax/imageio/ImageReadParam;
            4  127     3           index  I
           10  127     4      imageTypes  Ljava/util/Iterator<Ljavax/imageio/ImageTypeSpecifier;>;
           54  125     5            left  I
           55  125     6             off  I
           57   61     7          nbytes  I
           80  125     7            code  I
           70  125     8         oldCode  I
           71  125     9          prefix  [I
           72  125    10          suffix  [B
           73  125    11         initial  [B
           74  125    12          length  [I
           75  125    13          string  [B
           77  125    14      tableIndex  I
           78  125    15        codeSize  I
           79  125    16        codeMask  I
           96   97    17  newSuffixIndex  I
           98  111    17  newSuffixIndex  I
          101  111    18              ti  I
          102  111    19              oc  I
          112  121    17               c  I
          113  121    18             len  I
          114  119    19               i  I
          126  127     5               e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          49    89     125  Class java.io.IOException
          90    93     125  Class java.io.IOException
          94   124     125  Class java.io.IOException
    Exceptions:
      throws javax.imageio.IIOException
    MethodParameters:
            Name  Flags
      imageIndex  
      param       

  public void reset();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 1041
            aload 0 /* this */
            invokespecial javax.imageio.ImageReader.reset:()V
         1: .line 1042
            aload 0 /* this */
            invokevirtual com.sun.imageio.plugins.gif.GIFImageReader.resetStreamSettings:()V
         2: .line 1043
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private void resetStreamSettings();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
         0: .line 1049
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.gotHeader:Z
         1: .line 1050
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamMetadata:Lcom/sun/imageio/plugins/gif/GIFStreamMetadata;
         2: .line 1051
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.currIndex:I
         3: .line 1052
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageMetadata:Lcom/sun/imageio/plugins/gif/GIFImageMetadata;
         4: .line 1053
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.imageio.plugins.gif.GIFImageReader.imageStartPosition:Ljava/util/List;
         5: .line 1054
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.numImages:I
         6: .line 1057
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.blockLength:I
         7: .line 1058
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.bitPos:I
         8: .line 1059
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.nextByte:I
         9: .line 1061
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.next32Bits:I
        10: .line 1062
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.lastBlockFound:Z
        11: .line 1064
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theImage:Ljava/awt/image/BufferedImage;
        12: .line 1065
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.theTile:Ljava/awt/image/WritableRaster;
        13: .line 1066
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.width:I
        14: .line 1067
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.height:I
        15: .line 1068
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamX:I
        16: .line 1069
            aload 0 /* this */
            iconst_m1
            putfield com.sun.imageio.plugins.gif.GIFImageReader.streamY:I
        17: .line 1070
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.rowsDone:I
        18: .line 1071
            aload 0 /* this */
            iconst_0
            putfield com.sun.imageio.plugins.gif.GIFImageReader.interlacePass:I
        19: .line 1073
            aload 0 /* this */
            aconst_null
            putfield com.sun.imageio.plugins.gif.GIFImageReader.fallbackColorTable:[B
        20: .line 1074
            return
        end local 0 // com.sun.imageio.plugins.gif.GIFImageReader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lcom/sun/imageio/plugins/gif/GIFImageReader;

  private static synchronized byte[] getDefaultPalette();
    descriptor: ()[B
    flags: (0x002a) ACC_PRIVATE, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=7, args_size=0
         0: .line 1079
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            ifnonnull 20
         1: .line 1080
            new java.awt.image.BufferedImage
            dup
            iconst_1
            iconst_1
         2: .line 1081
            bipush 13
         3: .line 1080
            invokespecial java.awt.image.BufferedImage.<init>:(III)V
            astore 0 /* img */
        start local 0 // java.awt.image.BufferedImage img
         4: .line 1082
            aload 0 /* img */
            invokevirtual java.awt.image.BufferedImage.getColorModel:()Ljava/awt/image/ColorModel;
            checkcast java.awt.image.IndexColorModel
            astore 1 /* icm */
        start local 1 // java.awt.image.IndexColorModel icm
         5: .line 1084
            aload 1 /* icm */
            invokevirtual java.awt.image.IndexColorModel.getMapSize:()I
            istore 2 /* size */
        start local 2 // int size
         6: .line 1085
            iload 2 /* size */
            newarray 8
            astore 3 /* r */
        start local 3 // byte[] r
         7: .line 1086
            iload 2 /* size */
            newarray 8
            astore 4 /* g */
        start local 4 // byte[] g
         8: .line 1087
            iload 2 /* size */
            newarray 8
            astore 5 /* b */
        start local 5 // byte[] b
         9: .line 1088
            aload 1 /* icm */
            aload 3 /* r */
            invokevirtual java.awt.image.IndexColorModel.getReds:([B)V
        10: .line 1089
            aload 1 /* icm */
            aload 4 /* g */
            invokevirtual java.awt.image.IndexColorModel.getGreens:([B)V
        11: .line 1090
            aload 1 /* icm */
            aload 5 /* b */
            invokevirtual java.awt.image.IndexColorModel.getBlues:([B)V
        12: .line 1092
            iload 2 /* size */
            iconst_3
            imul
            newarray 8
            putstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
        13: .line 1094
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        14: goto 19
        15: .line 1095
      StackMap locals: java.awt.image.BufferedImage java.awt.image.IndexColorModel int byte[] byte[] byte[] int
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_0
            iadd
            aload 3 /* r */
            iload 6 /* i */
            baload
            bastore
        16: .line 1096
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_1
            iadd
            aload 4 /* g */
            iload 6 /* i */
            baload
            bastore
        17: .line 1097
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            iconst_3
            iload 6 /* i */
            imul
            iconst_2
            iadd
            aload 5 /* b */
            iload 6 /* i */
            baload
            bastore
        18: .line 1094
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 6 /* i */
            iload 2 /* size */
            if_icmplt 15
        end local 6 // int i
        end local 5 // byte[] b
        end local 4 // byte[] g
        end local 3 // byte[] r
        end local 2 // int size
        end local 1 // java.awt.image.IndexColorModel icm
        end local 0 // java.awt.image.BufferedImage img
        20: .line 1100
      StackMap locals:
      StackMap stack:
            getstatic com.sun.imageio.plugins.gif.GIFImageReader.defaultPalette:[B
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            4   20     0   img  Ljava/awt/image/BufferedImage;
            5   20     1   icm  Ljava/awt/image/IndexColorModel;
            6   20     2  size  I
            7   20     3     r  [B
            8   20     4     g  [B
            9   20     5     b  [B
           14   20     6     i  I
}
SourceFile: "GIFImageReader.java"