public final class org.apache.tomcat.util.buf.ByteChunk extends org.apache.tomcat.util.buf.AbstractChunk
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.tomcat.util.buf.ByteChunk
  super_class: org.apache.tomcat.util.buf.AbstractChunk
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final java.nio.charset.Charset DEFAULT_CHARSET;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private transient java.nio.charset.Charset charset;
    descriptor: Ljava/nio/charset/Charset;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

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

  private transient org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel in;
    descriptor: Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  private transient org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel out;
    descriptor: Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 126
            getstatic java.nio.charset.StandardCharsets.ISO_8859_1:Ljava/nio/charset/Charset;
            putstatic org.apache.tomcat.util.buf.ByteChunk.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 141
            aload 0 /* this */
            invokespecial org.apache.tomcat.util.buf.AbstractChunk.<init>:()V
         1: .line 134
            aload 0 /* this */
            aconst_null
            putfield org.apache.tomcat.util.buf.ByteChunk.in:Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
         2: .line 135
            aload 0 /* this */
            aconst_null
            putfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
         3: .line 142
            return
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // int initial
         0: .line 145
            aload 0 /* this */
            invokespecial org.apache.tomcat.util.buf.AbstractChunk.<init>:()V
         1: .line 134
            aload 0 /* this */
            aconst_null
            putfield org.apache.tomcat.util.buf.ByteChunk.in:Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
         2: .line 135
            aload 0 /* this */
            aconst_null
            putfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
         3: .line 146
            aload 0 /* this */
            iload 1 /* initial */
            iconst_m1
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.allocate:(II)V
         4: .line 147
            return
        end local 1 // int initial
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    5     1  initial  I
    MethodParameters:
         Name  Flags
      initial  

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.io.ObjectOutputStream oos
         0: .line 151
            aload 1 /* oos */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 152
            aload 1 /* oos */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getCharset:()Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.name:()Ljava/lang/String;
            invokevirtual java.io.ObjectOutputStream.writeUTF:(Ljava/lang/String;)V
         2: .line 153
            return
        end local 1 // java.io.ObjectOutputStream oos
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    3     1   oos  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      oos   

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.io.ObjectInputStream ois
         0: .line 157
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 158
            aload 0 /* this */
            aload 1 /* ois */
            invokevirtual java.io.ObjectInputStream.readUTF:()Ljava/lang/String;
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            putfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
         2: .line 159
            return
        end local 1 // java.io.ObjectInputStream ois
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    3     1   ois  Ljava/io/ObjectInputStream;
    Exceptions:
      throws java.lang.ClassNotFoundException, java.io.IOException
    MethodParameters:
      Name  Flags
      ois   

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 164
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            areturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
    Exceptions:
      throws java.lang.CloneNotSupportedException

  public void recycle();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 170
            aload 0 /* this */
            invokespecial org.apache.tomcat.util.buf.AbstractChunk.recycle:()V
         1: .line 171
            aload 0 /* this */
            aconst_null
            putfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
         2: .line 172
            return
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public void allocate(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // int initial
        start local 2 // int limit
         0: .line 178
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            ifnull 1
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            iload 1 /* initial */
            if_icmpge 2
         1: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* initial */
            newarray 8
            putfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
         2: .line 181
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* limit */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.setLimit:(I)V
         3: .line 182
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
         4: .line 183
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
         5: .line 184
            aload 0 /* this */
            iconst_1
            putfield org.apache.tomcat.util.buf.ByteChunk.isSet:Z
         6: .line 185
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.buf.ByteChunk.hasHashCode:Z
         7: .line 186
            return
        end local 2 // int limit
        end local 1 // int initial
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    8     1  initial  I
            0    8     2    limit  I
    MethodParameters:
         Name  Flags
      initial  
      limit    

  public void setBytes(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 197
            aload 0 /* this */
            aload 1 /* b */
            putfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
         1: .line 198
            aload 0 /* this */
            iload 2 /* off */
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
         2: .line 199
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 3 /* len */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
         3: .line 200
            aload 0 /* this */
            iconst_1
            putfield org.apache.tomcat.util.buf.ByteChunk.isSet:Z
         4: .line 201
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.buf.ByteChunk.hasHashCode:Z
         5: .line 202
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    6     1     b  [B
            0    6     2   off  I
            0    6     3   len  I
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public void setCharset(java.nio.charset.Charset);
    descriptor: (Ljava/nio/charset/Charset;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.nio.charset.Charset charset
         0: .line 206
            aload 0 /* this */
            aload 1 /* charset */
            putfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
         1: .line 207
            return
        end local 1 // java.nio.charset.Charset charset
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    2     1  charset  Ljava/nio/charset/Charset;
    MethodParameters:
         Name  Flags
      charset  

  public java.nio.charset.Charset getCharset();
    descriptor: ()Ljava/nio/charset/Charset;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 211
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
            ifnonnull 2
         1: .line 212
            aload 0 /* this */
            getstatic org.apache.tomcat.util.buf.ByteChunk.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
            putfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
         2: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
            areturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public byte[] getBytes();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 222
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBuffer:()[B
            areturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public byte[] getBuffer();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 230
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            areturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public void setByteInputChannel(org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel);
    descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel in
         0: .line 240
            aload 0 /* this */
            aload 1 /* in */
            putfield org.apache.tomcat.util.buf.ByteChunk.in:Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
         1: .line 241
            return
        end local 1 // org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel in
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    2     1    in  Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
    MethodParameters:
      Name  Flags
      in    

  public void setByteOutputChannel(org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel);
    descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel out
         0: .line 252
            aload 0 /* this */
            aload 1 /* out */
            putfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
         1: .line 253
            return
        end local 1 // org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel out
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    2     1   out  Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
    MethodParameters:
      Name  Flags
      out   

  public void append(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // byte b
         0: .line 259
            aload 0 /* this */
            iconst_1
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.makeSpace:(I)V
         1: .line 260
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLimitInternal:()I
            istore 2 /* limit */
        start local 2 // int limit
         2: .line 263
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 2 /* limit */
            if_icmplt 4
         3: .line 264
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.flushBuffer:()V
         4: .line 266
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 1 /* b */
            bastore
         5: .line 267
            return
        end local 2 // int limit
        end local 1 // byte b
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    6     1      b  B
            2    6     2  limit  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void append(org.apache.tomcat.util.buf.ByteChunk);
    descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // org.apache.tomcat.util.buf.ByteChunk src
         0: .line 271
            aload 0 /* this */
            aload 1 /* src */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
            aload 1 /* src */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
            aload 1 /* src */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.append:([BII)V
         1: .line 272
            return
        end local 1 // org.apache.tomcat.util.buf.ByteChunk src
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    2     1   src  Lorg/apache/tomcat/util/buf/ByteChunk;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   

  public void append(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // byte[] src
        start local 2 // int off
        start local 3 // int len
         0: .line 285
            aload 0 /* this */
            iload 3 /* len */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.makeSpace:(I)V
         1: .line 286
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLimitInternal:()I
            istore 4 /* limit */
        start local 4 // int limit
         2: .line 292
            iload 3 /* len */
            iload 4 /* limit */
            if_icmpne 5
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            if_icmpne 5
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            ifnull 5
         3: .line 293
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            aload 1 /* src */
            iload 2 /* off */
            iload 3 /* len */
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel.realWriteBytes:([BII)V
         4: .line 294
            return
         5: .line 298
      StackMap locals: int
      StackMap stack:
            iload 3 /* len */
            iload 4 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            if_icmpgt 9
         6: .line 299
            aload 1 /* src */
            iload 2 /* off */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 3 /* len */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 300
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 3 /* len */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
         8: .line 301
            return
         9: .line 311
      StackMap locals:
      StackMap stack:
            iload 4 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            istore 5 /* avail */
        start local 5 // int avail
        10: .line 312
            aload 1 /* src */
            iload 2 /* off */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 5 /* avail */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        11: .line 313
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 5 /* avail */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        12: .line 315
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.flushBuffer:()V
        13: .line 317
            iload 3 /* len */
            iload 5 /* avail */
            isub
            istore 6 /* remain */
        start local 6 // int remain
        14: .line 319
            goto 17
        15: .line 320
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            aload 1 /* src */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            iload 6 /* remain */
            isub
            iload 4 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel.realWriteBytes:([BII)V
        16: .line 321
            iload 6 /* remain */
            iload 4 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            isub
            istore 6 /* remain */
        17: .line 319
      StackMap locals:
      StackMap stack:
            iload 6 /* remain */
            iload 4 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            if_icmpgt 15
        18: .line 324
            aload 1 /* src */
            iload 2 /* off */
            iload 3 /* len */
            iadd
            iload 6 /* remain */
            isub
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 6 /* remain */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        19: .line 325
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 6 /* remain */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        20: .line 326
            return
        end local 6 // int remain
        end local 5 // int avail
        end local 4 // int limit
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] src
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   21     0    this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   21     1     src  [B
            0   21     2     off  I
            0   21     3     len  I
            2   21     4   limit  I
           10   21     5   avail  I
           14   21     6  remain  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      src   
      off   
      len   

  public void append(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.nio.ByteBuffer from
         0: .line 336
            aload 1 /* from */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            istore 2 /* len */
        start local 2 // int len
         1: .line 339
            aload 0 /* this */
            iload 2 /* len */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.makeSpace:(I)V
         2: .line 340
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLimitInternal:()I
            istore 3 /* limit */
        start local 3 // int limit
         3: .line 346
            iload 2 /* len */
            iload 3 /* limit */
            if_icmpne 7
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            if_icmpne 7
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            ifnull 7
         4: .line 347
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            aload 1 /* from */
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel.realWriteBytes:(Ljava/nio/ByteBuffer;)V
         5: .line 348
            aload 1 /* from */
            aload 1 /* from */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         6: .line 349
            return
         7: .line 352
      StackMap locals: int int
      StackMap stack:
            iload 2 /* len */
            iload 3 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            if_icmpgt 11
         8: .line 355
            aload 1 /* from */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 2 /* len */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
         9: .line 356
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 2 /* len */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        10: .line 357
            return
        11: .line 368
      StackMap locals:
      StackMap stack:
            iload 3 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            istore 4 /* avail */
        start local 4 // int avail
        12: .line 369
            aload 1 /* from */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 4 /* avail */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        13: .line 370
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 4 /* avail */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        14: .line 372
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.flushBuffer:()V
        15: .line 374
            aload 1 /* from */
            invokevirtual java.nio.ByteBuffer.limit:()I
            istore 5 /* fromLimit */
        start local 5 // int fromLimit
        16: .line 375
            iload 2 /* len */
            iload 4 /* avail */
            isub
            istore 6 /* remain */
        start local 6 // int remain
        17: .line 376
            iload 3 /* limit */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            isub
            istore 4 /* avail */
        18: .line 377
            goto 23
        19: .line 378
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* from */
            aload 1 /* from */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 4 /* avail */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        20: .line 379
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            aload 1 /* from */
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel.realWriteBytes:(Ljava/nio/ByteBuffer;)V
        21: .line 380
            aload 1 /* from */
            aload 1 /* from */
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        22: .line 381
            iload 6 /* remain */
            iload 4 /* avail */
            isub
            istore 6 /* remain */
        23: .line 377
      StackMap locals:
      StackMap stack:
            iload 6 /* remain */
            iload 4 /* avail */
            if_icmpge 19
        24: .line 384
            aload 1 /* from */
            iload 5 /* fromLimit */
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        25: .line 385
            aload 1 /* from */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 6 /* remain */
            invokevirtual java.nio.ByteBuffer.get:([BII)Ljava/nio/ByteBuffer;
            pop
        26: .line 386
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 6 /* remain */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        27: .line 387
            return
        end local 6 // int remain
        end local 5 // int fromLimit
        end local 4 // int avail
        end local 3 // int limit
        end local 2 // int len
        end local 1 // java.nio.ByteBuffer from
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   28     0       this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   28     1       from  Ljava/nio/ByteBuffer;
            1   28     2        len  I
            3   28     3      limit  I
           12   28     4      avail  I
           16   28     5  fromLimit  I
           17   28     6     remain  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      from  

  public int subtract();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 393
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.checkEof:()Z
            ifeq 2
         1: .line 394
            iconst_m1
            ireturn
         2: .line 396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
            baload
            sipush 255
            iand
            ireturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
    Exceptions:
      throws java.io.IOException

  public byte subtractB();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 400
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.checkEof:()Z
            ifeq 2
         1: .line 401
            iconst_m1
            ireturn
         2: .line 403
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
            baload
            ireturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
    Exceptions:
      throws java.io.IOException

  public int subtract(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // byte[] dest
        start local 2 // int off
        start local 3 // int len
         0: .line 408
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.checkEof:()Z
            ifeq 2
         1: .line 409
            iconst_m1
            ireturn
         2: .line 411
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            istore 4 /* n */
        start local 4 // int n
         3: .line 412
            iload 3 /* len */
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            if_icmple 5
         4: .line 413
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            istore 4 /* n */
         5: .line 415
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            aload 1 /* dest */
            iload 2 /* off */
            iload 4 /* n */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 416
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 4 /* n */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
         7: .line 417
            iload 4 /* n */
            ireturn
        end local 4 // int n
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] dest
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    8     1  dest  [B
            0    8     2   off  I
            0    8     3   len  I
            3    8     4     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      dest  
      off   
      len   

  public int subtract(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.nio.ByteBuffer to
         0: .line 433
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.checkEof:()Z
            ifeq 2
         1: .line 434
            iconst_m1
            ireturn
         2: .line 436
      StackMap locals:
      StackMap stack:
            aload 1 /* to */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            invokestatic java.lang.Math.min:(II)I
            istore 2 /* n */
        start local 2 // int n
         3: .line 437
            aload 1 /* to */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 2 /* n */
            invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
            pop
         4: .line 438
            aload 1 /* to */
            aload 1 /* to */
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         5: .line 439
            aload 1 /* to */
            aload 1 /* to */
            invokevirtual java.nio.ByteBuffer.position:()I
            iload 2 /* n */
            isub
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         6: .line 440
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 2 /* n */
            iadd
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
         7: .line 441
            iload 2 /* n */
            ireturn
        end local 2 // int n
        end local 1 // java.nio.ByteBuffer to
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    8     1    to  Ljava/nio/ByteBuffer;
            3    8     2     n  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      to    

  private boolean checkEof();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 446
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            ifne 6
         1: .line 447
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.in:Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
            ifnonnull 3
         2: .line 448
            iconst_1
            ireturn
         3: .line 450
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.in:Lorg/apache/tomcat/util/buf/ByteChunk$ByteInputChannel;
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel.realReadBytes:()I
            istore 1 /* n */
        start local 1 // int n
         4: .line 451
            iload 1 /* n */
            ifge 6
         5: .line 452
            iconst_1
            ireturn
        end local 1 // int n
         6: .line 455
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            4    6     1     n  I
    Exceptions:
      throws java.io.IOException

  public void flushBuffer();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 467
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            ifnonnull 4
         1: .line 468
            new java.io.IOException
            dup
            getstatic org.apache.tomcat.util.buf.ByteChunk.sm:Lorg/apache/tomcat/util/res/StringManager;
         2: .line 469
            ldc "chunk.overflow"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLimit:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         3: .line 468
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 471
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.out:Lorg/apache/tomcat/util/buf/ByteChunk$ByteOutputChannel;
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            invokeinterface org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel.realWriteBytes:([BII)V
         5: .line 472
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
         6: .line 473
            return
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
    Exceptions:
      throws java.io.IOException

  public void makeSpace(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // int count
         0: .line 483
            aconst_null
            astore 2 /* tmp */
        start local 2 // byte[] tmp
         1: .line 485
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLimitInternal:()I
            istore 3 /* limit */
        start local 3 // int limit
         2: .line 488
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 1 /* count */
            iadd
            i2l
            lstore 6 /* desiredSize */
        start local 6 // long desiredSize
         3: .line 491
            lload 6 /* desiredSize */
            iload 3 /* limit */
            i2l
            lcmp
            ifle 5
         4: .line 492
            iload 3 /* limit */
            i2l
            lstore 6 /* desiredSize */
         5: .line 495
      StackMap locals: org.apache.tomcat.util.buf.ByteChunk int byte[] int top top long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            ifnonnull 9
         6: .line 496
            lload 6 /* desiredSize */
            ldc 256
            lcmp
            ifge 8
         7: .line 497
            ldc 256
            lstore 6 /* desiredSize */
         8: .line 499
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 6 /* desiredSize */
            l2i
            newarray 8
            putfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
         9: .line 504
      StackMap locals:
      StackMap stack:
            lload 6 /* desiredSize */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            i2l
            lcmp
            ifgt 11
        10: .line 505
            return
        11: .line 508
      StackMap locals:
      StackMap stack:
            lload 6 /* desiredSize */
            ldc 2
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            i2l
            lmul
            lcmp
            ifge 14
        12: .line 509
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            i2l
            ldc 2
            lmul
            lstore 4 /* newSize */
        start local 4 // long newSize
        13: .line 510
            goto 15
        end local 4 // long newSize
        14: .line 511
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            arraylength
            i2l
            ldc 2
            lmul
            iload 1 /* count */
            i2l
            ladd
            lstore 4 /* newSize */
        start local 4 // long newSize
        15: .line 514
      StackMap locals: org.apache.tomcat.util.buf.ByteChunk int byte[] int long long
      StackMap stack:
            lload 4 /* newSize */
            iload 3 /* limit */
            i2l
            lcmp
            ifle 17
        16: .line 515
            iload 3 /* limit */
            i2l
            lstore 4 /* newSize */
        17: .line 517
      StackMap locals:
      StackMap stack:
            lload 4 /* newSize */
            l2i
            newarray 8
            astore 2 /* tmp */
        18: .line 520
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            aload 2 /* tmp */
            iconst_0
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        19: .line 521
            aload 0 /* this */
            aload 2 /* tmp */
            putfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
        20: .line 522
            aconst_null
            astore 2 /* tmp */
        21: .line 523
            aload 0 /* this */
            dup
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            putfield org.apache.tomcat.util.buf.ByteChunk.end:I
        22: .line 524
            aload 0 /* this */
            iconst_0
            putfield org.apache.tomcat.util.buf.ByteChunk.start:I
        23: .line 525
            return
        end local 6 // long desiredSize
        end local 4 // long newSize
        end local 3 // int limit
        end local 2 // byte[] tmp
        end local 1 // int count
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   24     0         this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   24     1        count  I
            1   24     2          tmp  [B
            2   24     3        limit  I
           13   14     4      newSize  J
           15   24     4      newSize  J
            3   24     6  desiredSize  J
    MethodParameters:
       Name  Flags
      count  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 532
            aload 0 /* this */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.isNull:()Z
            ifeq 2
         1: .line 533
            aconst_null
            areturn
         2: .line 534
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            ifne 4
         3: .line 535
            ldc ""
            areturn
         4: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.apache.tomcat.util.buf.StringCache.toString:(Lorg/apache/tomcat/util/buf/ByteChunk;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public java.lang.String toStringInternal();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 542
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
            ifnonnull 2
         1: .line 543
            aload 0 /* this */
            getstatic org.apache.tomcat.util.buf.ByteChunk.DEFAULT_CHARSET:Ljava/nio/charset/Charset;
            putfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
         2: .line 548
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.charset:Ljava/nio/charset/Charset;
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
            invokevirtual java.nio.charset.Charset.decode:(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;
            astore 1 /* cb */
        start local 1 // java.nio.CharBuffer cb
         3: .line 549
            new java.lang.String
            dup
            aload 1 /* cb */
            invokevirtual java.nio.CharBuffer.array:()[C
            aload 1 /* cb */
            invokevirtual java.nio.CharBuffer.arrayOffset:()I
            aload 1 /* cb */
            invokevirtual java.nio.CharBuffer.length:()I
            invokespecial java.lang.String.<init>:([CII)V
            areturn
        end local 1 // java.nio.CharBuffer cb
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            3    4     1    cb  Ljava/nio/CharBuffer;

  public long getLong();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
         0: .line 554
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            invokestatic org.apache.tomcat.util.buf.Ascii.parseLong:([BII)J
            lreturn
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.lang.Object obj
         0: .line 562
            aload 1 /* obj */
            instanceof org.apache.tomcat.util.buf.ByteChunk
            ifeq 2
         1: .line 563
            aload 0 /* this */
            aload 1 /* obj */
            checkcast org.apache.tomcat.util.buf.ByteChunk
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.equals:(Lorg/apache/tomcat/util/buf/ByteChunk;)Z
            ireturn
         2: .line 565
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    3     1   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  public boolean equals(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.lang.String s
         0: .line 580
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 2 /* b */
        start local 2 // byte[] b
         1: .line 581
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            istore 3 /* len */
        start local 3 // int len
         2: .line 582
            aload 2 /* b */
            ifnull 3
            iload 3 /* len */
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
         3: .line 583
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            istore 4 /* off */
        start local 4 // int off
         5: .line 586
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 10
         7: .line 587
      StackMap locals: int int
      StackMap stack:
            aload 2 /* b */
            iload 4 /* off */
            iinc 4 /* off */ 1
            baload
            aload 1 /* s */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 9
         8: .line 588
            iconst_0
            ireturn
         9: .line 586
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 7
        end local 5 // int i
        11: .line 591
            iconst_1
            ireturn
        end local 4 // int off
        end local 3 // int len
        end local 2 // byte[] b
        end local 1 // java.lang.String s
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1     s  Ljava/lang/String;
            1   12     2     b  [B
            2   12     3   len  I
            5   12     4   off  I
            6   11     5     i  I
    MethodParameters:
      Name  Flags
      s     

  public boolean equalsIgnoreCase(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.lang.String s
         0: .line 603
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 2 /* b */
        start local 2 // byte[] b
         1: .line 604
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            istore 3 /* len */
        start local 3 // int len
         2: .line 605
            aload 2 /* b */
            ifnull 3
            iload 3 /* len */
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            if_icmpeq 4
         3: .line 606
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 608
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            istore 4 /* off */
        start local 4 // int off
         5: .line 609
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 10
         7: .line 610
      StackMap locals: int int
      StackMap stack:
            aload 2 /* b */
            iload 4 /* off */
            iinc 4 /* off */ 1
            baload
            invokestatic org.apache.tomcat.util.buf.Ascii.toLower:(I)I
            aload 1 /* s */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.apache.tomcat.util.buf.Ascii.toLower:(I)I
            if_icmpeq 9
         8: .line 611
            iconst_0
            ireturn
         9: .line 609
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 3 /* len */
            if_icmplt 7
        end local 5 // int i
        11: .line 614
            iconst_1
            ireturn
        end local 4 // int off
        end local 3 // int len
        end local 2 // byte[] b
        end local 1 // java.lang.String s
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1     s  Ljava/lang/String;
            1   12     2     b  [B
            2   12     3   len  I
            5   12     4   off  I
            6   11     5     i  I
    MethodParameters:
      Name  Flags
      s     

  public boolean equals(org.apache.tomcat.util.buf.ByteChunk);
    descriptor: (Lorg/apache/tomcat/util/buf/ByteChunk;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // org.apache.tomcat.util.buf.ByteChunk bb
         0: .line 619
            aload 0 /* this */
            aload 1 /* bb */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getBytes:()[B
            aload 1 /* bb */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getStart:()I
            aload 1 /* bb */
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.getLength:()I
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.equals:([BII)Z
            ireturn
        end local 1 // org.apache.tomcat.util.buf.ByteChunk bb
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    1     1    bb  Lorg/apache/tomcat/util/buf/ByteChunk;
    MethodParameters:
      Name  Flags
      bb    

  public boolean equals(byte[], int, int);
    descriptor: ([BII)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // byte[] b2
        start local 2 // int off2
        start local 3 // int len2
         0: .line 624
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 4 /* b1 */
        start local 4 // byte[] b1
         1: .line 625
            aload 4 /* b1 */
            ifnonnull 3
            aload 1 /* b2 */
            ifnonnull 3
         2: .line 626
            iconst_1
            ireturn
         3: .line 629
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            istore 5 /* len */
        start local 5 // int len
         4: .line 630
            iload 5 /* len */
            iload 3 /* len2 */
            if_icmpne 5
            aload 4 /* b1 */
            ifnull 5
            aload 1 /* b2 */
            ifnonnull 6
         5: .line 631
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         6: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            istore 6 /* off1 */
        start local 6 // int off1
         7: .line 636
            goto 10
         8: .line 637
      StackMap locals: int
      StackMap stack:
            aload 4 /* b1 */
            iload 6 /* off1 */
            iinc 6 /* off1 */ 1
            baload
            aload 1 /* b2 */
            iload 2 /* off2 */
            iinc 2 /* off2 */ 1
            baload
            if_icmpeq 10
         9: .line 638
            iconst_0
            ireturn
        10: .line 636
      StackMap locals:
      StackMap stack:
            iload 5 /* len */
            iinc 5 /* len */ -1
            ifgt 8
        11: .line 641
            iconst_1
            ireturn
        end local 6 // int off1
        end local 5 // int len
        end local 4 // byte[] b1
        end local 3 // int len2
        end local 2 // int off2
        end local 1 // byte[] b2
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1    b2  [B
            0   12     2  off2  I
            0   12     3  len2  I
            1   12     4    b1  [B
            4   12     5   len  I
            7   12     6  off1  I
    MethodParameters:
      Name  Flags
      b2    
      off2  
      len2  

  public boolean equals(org.apache.tomcat.util.buf.CharChunk);
    descriptor: (Lorg/apache/tomcat/util/buf/CharChunk;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // org.apache.tomcat.util.buf.CharChunk cc
         0: .line 646
            aload 0 /* this */
            aload 1 /* cc */
            invokevirtual org.apache.tomcat.util.buf.CharChunk.getChars:()[C
            aload 1 /* cc */
            invokevirtual org.apache.tomcat.util.buf.CharChunk.getStart:()I
            aload 1 /* cc */
            invokevirtual org.apache.tomcat.util.buf.CharChunk.getLength:()I
            invokevirtual org.apache.tomcat.util.buf.ByteChunk.equals:([CII)Z
            ireturn
        end local 1 // org.apache.tomcat.util.buf.CharChunk cc
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    1     1    cc  Lorg/apache/tomcat/util/buf/CharChunk;
    MethodParameters:
      Name  Flags
      cc    

  public boolean equals(char[], int, int);
    descriptor: ([CII)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // char[] c2
        start local 2 // int off2
        start local 3 // int len2
         0: .line 652
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 4 /* b1 */
        start local 4 // byte[] b1
         1: .line 653
            aload 1 /* c2 */
            ifnonnull 3
            aload 4 /* b1 */
            ifnonnull 3
         2: .line 654
            iconst_1
            ireturn
         3: .line 657
      StackMap locals: byte[]
      StackMap stack:
            aload 4 /* b1 */
            ifnull 4
            aload 1 /* c2 */
            ifnull 4
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            iload 3 /* len2 */
            if_icmpeq 5
         4: .line 658
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         5: .line 660
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            istore 5 /* off1 */
        start local 5 // int off1
         6: .line 661
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            istore 6 /* len */
        start local 6 // int len
         7: .line 663
            goto 10
         8: .line 664
      StackMap locals: int int
      StackMap stack:
            aload 4 /* b1 */
            iload 5 /* off1 */
            iinc 5 /* off1 */ 1
            baload
            i2c
            aload 1 /* c2 */
            iload 2 /* off2 */
            iinc 2 /* off2 */ 1
            caload
            if_icmpeq 10
         9: .line 665
            iconst_0
            ireturn
        10: .line 663
      StackMap locals:
      StackMap stack:
            iload 6 /* len */
            iinc 6 /* len */ -1
            ifgt 8
        11: .line 668
            iconst_1
            ireturn
        end local 6 // int len
        end local 5 // int off1
        end local 4 // byte[] b1
        end local 3 // int len2
        end local 2 // int off2
        end local 1 // char[] c2
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1    c2  [C
            0   12     2  off2  I
            0   12     3  len2  I
            1   12     4    b1  [B
            6   12     5  off1  I
            7   12     6   len  I
    MethodParameters:
      Name  Flags
      c2    
      off2  
      len2  

  public boolean startsWith(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.lang.String s
        start local 2 // int pos
         0: .line 682
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 3 /* b */
        start local 3 // byte[] b
         1: .line 683
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         2: .line 684
            aload 3 /* b */
            ifnull 3
            iload 4 /* len */
            iload 2 /* pos */
            iadd
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            if_icmple 4
         3: .line 685
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 687
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 2 /* pos */
            iadd
            istore 5 /* off */
        start local 5 // int off
         5: .line 688
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 689
      StackMap locals: int int
      StackMap stack:
            aload 3 /* b */
            iload 5 /* off */
            iinc 5 /* off */ 1
            baload
            aload 1 /* s */
            iload 6 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            if_icmpeq 9
         8: .line 690
            iconst_0
            ireturn
         9: .line 688
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 4 /* len */
            if_icmplt 7
        end local 6 // int i
        11: .line 693
            iconst_1
            ireturn
        end local 5 // int off
        end local 4 // int len
        end local 3 // byte[] b
        end local 2 // int pos
        end local 1 // java.lang.String s
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1     s  Ljava/lang/String;
            0   12     2   pos  I
            1   12     3     b  [B
            2   12     4   len  I
            5   12     5   off  I
            6   11     6     i  I
    MethodParameters:
      Name  Flags
      s     
      pos   

  public boolean startsWithIgnoreCase(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // java.lang.String s
        start local 2 // int pos
         0: .line 707
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            astore 3 /* b */
        start local 3 // byte[] b
         1: .line 708
            aload 1 /* s */
            invokevirtual java.lang.String.length:()I
            istore 4 /* len */
        start local 4 // int len
         2: .line 709
            aload 3 /* b */
            ifnull 3
            iload 4 /* len */
            iload 2 /* pos */
            iadd
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            if_icmple 4
         3: .line 710
      StackMap locals: byte[] int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 2 /* pos */
            iadd
            istore 5 /* off */
        start local 5 // int off
         5: .line 713
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 10
         7: .line 714
      StackMap locals: int int
      StackMap stack:
            aload 3 /* b */
            iload 5 /* off */
            iinc 5 /* off */ 1
            baload
            invokestatic org.apache.tomcat.util.buf.Ascii.toLower:(I)I
            aload 1 /* s */
            iload 6 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic org.apache.tomcat.util.buf.Ascii.toLower:(I)I
            if_icmpeq 9
         8: .line 715
            iconst_0
            ireturn
         9: .line 713
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 6 /* i */
            iload 4 /* len */
            if_icmplt 7
        end local 6 // int i
        11: .line 718
            iconst_1
            ireturn
        end local 5 // int off
        end local 4 // int len
        end local 3 // byte[] b
        end local 2 // int pos
        end local 1 // java.lang.String s
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0   12     1     s  Ljava/lang/String;
            0   12     2   pos  I
            1   12     3     b  [B
            2   12     4   len  I
            5   12     5   off  I
            6   11     6     i  I
    MethodParameters:
      Name  Flags
      s     
      pos   

  protected int getBufferElement(int);
    descriptor: (I)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // int index
         0: .line 724
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            iload 1 /* index */
            baload
            ireturn
        end local 1 // int index
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public int indexOf(char, int);
    descriptor: (CI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.apache.tomcat.util.buf.ByteChunk this
        start local 1 // char c
        start local 2 // int starting
         0: .line 740
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.buff:[B
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            iload 2 /* starting */
            iadd
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.end:I
            iload 1 /* c */
            invokestatic org.apache.tomcat.util.buf.ByteChunk.indexOf:([BIIC)I
            istore 3 /* ret */
        start local 3 // int ret
         1: .line 741
            iload 3 /* ret */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            if_icmplt 2
            iload 3 /* ret */
            aload 0 /* this */
            getfield org.apache.tomcat.util.buf.ByteChunk.start:I
            isub
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 3 // int ret
        end local 2 // int starting
        end local 1 // char c
        end local 0 // org.apache.tomcat.util.buf.ByteChunk this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Lorg/apache/tomcat/util/buf/ByteChunk;
            0    4     1         c  C
            0    4     2  starting  I
            1    4     3       ret  I
    MethodParameters:
          Name  Flags
      c         
      starting  

  public static int indexOf(byte[], int, int, char);
    descriptor: ([BIIC)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int start
        start local 2 // int end
        start local 3 // char s
         0: .line 758
            iload 1 /* start */
            istore 4 /* offset */
        start local 4 // int offset
         1: .line 760
            goto 6
         2: .line 761
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytes */
            iload 4 /* offset */
            baload
            istore 5 /* b */
        start local 5 // byte b
         3: .line 762
            iload 5 /* b */
            iload 3 /* s */
            if_icmpne 5
         4: .line 763
            iload 4 /* offset */
            ireturn
         5: .line 765
      StackMap locals: int
      StackMap stack:
            iinc 4 /* offset */ 1
        end local 5 // byte b
         6: .line 760
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 2 /* end */
            if_icmplt 2
         7: .line 767
            iconst_m1
            ireturn
        end local 4 // int offset
        end local 3 // char s
        end local 2 // int end
        end local 1 // int start
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0   bytes  [B
            0    8     1   start  I
            0    8     2     end  I
            0    8     3       s  C
            1    8     4  offset  I
            3    6     5       b  B
    MethodParameters:
       Name  Flags
      bytes  
      start  
      end    
      s      

  public static int findByte(byte[], int, int, byte);
    descriptor: ([BIIB)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int start
        start local 2 // int end
        start local 3 // byte b
         0: .line 783
            iload 1 /* start */
            istore 4 /* offset */
        start local 4 // int offset
         1: .line 784
            goto 5
         2: .line 785
      StackMap locals: int
      StackMap stack:
            aload 0 /* bytes */
            iload 4 /* offset */
            baload
            iload 3 /* b */
            if_icmpne 4
         3: .line 786
            iload 4 /* offset */
            ireturn
         4: .line 788
      StackMap locals:
      StackMap stack:
            iinc 4 /* offset */ 1
         5: .line 784
      StackMap locals:
      StackMap stack:
            iload 4 /* offset */
            iload 2 /* end */
            if_icmplt 2
         6: .line 790
            iconst_m1
            ireturn
        end local 4 // int offset
        end local 3 // byte b
        end local 2 // int end
        end local 1 // int start
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   bytes  [B
            0    7     1   start  I
            0    7     2     end  I
            0    7     3       b  B
            1    7     4  offset  I
    MethodParameters:
       Name  Flags
      bytes  
      start  
      end    
      b      

  public static int findBytes(byte[], int, int, byte[]);
    descriptor: ([BII[B)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=9, args_size=4
        start local 0 // byte[] bytes
        start local 1 // int start
        start local 2 // int end
        start local 3 // byte[] b
         0: .line 806
            iload 1 /* start */
            istore 4 /* offset */
        start local 4 // int offset
         1: .line 807
            goto 9
         2: .line 808
      StackMap locals: int
      StackMap stack:
            aload 3 /* b */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: byte[] int int byte[] int top int int byte[]
      StackMap stack:
         3: aload 8
            iload 6
            baload
            istore 5 /* value */
        start local 5 // byte value
         4: .line 809
            aload 0 /* bytes */
            iload 4 /* offset */
            baload
            iload 5 /* value */
            if_icmpne 6
         5: .line 810
            iload 4 /* offset */
            ireturn
        end local 5 // byte value
         6: .line 808
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
         8: .line 813
            iinc 4 /* offset */ 1
         9: .line 807
      StackMap locals: byte[] int int byte[] int
      StackMap stack:
            iload 4 /* offset */
            iload 2 /* end */
            if_icmplt 2
        10: .line 815
            iconst_m1
            ireturn
        end local 4 // int offset
        end local 3 // byte[] b
        end local 2 // int end
        end local 1 // int start
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0   bytes  [B
            0   11     1   start  I
            0   11     2     end  I
            0   11     3       b  [B
            1   11     4  offset  I
            4    6     5   value  B
    MethodParameters:
       Name  Flags
      bytes  
      start  
      end    
      b      

  public static final byte[] convertToBytes(java.lang.String);
    descriptor: (Ljava/lang/String;)[B
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String value
         0: .line 827
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            newarray 8
            astore 1 /* result */
        start local 1 // byte[] result
         1: .line 828
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 829
      StackMap locals: byte[] int
      StackMap stack:
            aload 1 /* result */
            iload 2 /* i */
            aload 0 /* value */
            iload 2 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            i2b
            bastore
         4: .line 828
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* value */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 831
            aload 1 /* result */
            areturn
        end local 1 // byte[] result
        end local 0 // java.lang.String value
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0   value  Ljava/lang/String;
            1    7     1  result  [B
            2    6     2       i  I
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "ByteChunk.java"
NestMembers:
  org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel  org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel
InnerClasses:
  public abstract ByteInputChannel = org.apache.tomcat.util.buf.ByteChunk$ByteInputChannel of org.apache.tomcat.util.buf.ByteChunk
  public abstract ByteOutputChannel = org.apache.tomcat.util.buf.ByteChunk$ByteOutputChannel of org.apache.tomcat.util.buf.ByteChunk