public class sun.awt.datatransfer.DataTransferer$ReencodingInputStream extends java.io.InputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.awt.datatransfer.DataTransferer$ReencodingInputStream
  super_class: java.io.InputStream
{
  protected java.io.BufferedReader wrapped;
    descriptor: Ljava/io/BufferedReader;
    flags: (0x0004) ACC_PROTECTED

  protected final char[] in;
    descriptor: [C
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected byte[] out;
    descriptor: [B
    flags: (0x0004) ACC_PROTECTED

  protected java.nio.charset.CharsetEncoder encoder;
    descriptor: Ljava/nio/charset/CharsetEncoder;
    flags: (0x0004) ACC_PROTECTED

  protected java.nio.CharBuffer inBuf;
    descriptor: Ljava/nio/CharBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected java.nio.ByteBuffer outBuf;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0004) ACC_PROTECTED

  protected char[] eoln;
    descriptor: [C
    flags: (0x0004) ACC_PROTECTED

  protected int numTerminators;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected boolean eos;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected int index;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int limit;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  final sun.awt.datatransfer.DataTransferer this$0;
    descriptor: Lsun/awt/datatransfer/DataTransferer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  public void <init>(sun.awt.datatransfer.DataTransferer, java.io.InputStream, long, java.lang.String, java.awt.datatransfer.Transferable);
    descriptor: (Lsun/awt/datatransfer/DataTransferer;Ljava/io/InputStream;JLjava/lang/String;Ljava/awt/datatransfer/Transferable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=6
        start local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
        start local 2 // java.io.InputStream bytestream
        start local 3 // long format
        start local 5 // java.lang.String targetEncoding
        start local 6 // java.awt.datatransfer.Transferable localeTransferable
         0: .line 1806
            aload 0 /* this */
            aload 1
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.this$0:Lsun/awt/datatransfer/DataTransferer;
         1: .line 1802
            aload 0 /* this */
            invokespecial java.io.InputStream.<init>:()V
         2: .line 1789
            aload 0 /* this */
            iconst_1
            newarray 5
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.in:[C
         3: .line 1807
            lload 3 /* format */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            astore 7 /* lFormat */
        start local 7 // java.lang.Long lFormat
         4: .line 1809
            aconst_null
            astore 8 /* sourceEncoding */
        start local 8 // java.lang.String sourceEncoding
         5: .line 1810
            aload 1
            lload 3 /* format */
            invokevirtual sun.awt.datatransfer.DataTransferer.isLocaleDependentTextFormat:(J)Z
            ifeq 16
         6: .line 1811
            aload 6 /* localeTransferable */
            ifnull 16
         7: .line 1812
            aload 6 /* localeTransferable */
         8: .line 1813
            getstatic sun.awt.datatransfer.DataTransferer.javaTextEncodingFlavor:Ljava/awt/datatransfer/DataFlavor;
            invokeinterface java.awt.datatransfer.Transferable.isDataFlavorSupported:(Ljava/awt/datatransfer/DataFlavor;)Z
            ifeq 16
         9: .line 1816
            new java.lang.String
            dup
            aload 6 /* localeTransferable */
        10: .line 1817
            getstatic sun.awt.datatransfer.DataTransferer.javaTextEncodingFlavor:Ljava/awt/datatransfer/DataFlavor;
            invokeinterface java.awt.datatransfer.Transferable.getTransferData:(Ljava/awt/datatransfer/DataFlavor;)Ljava/lang/Object;
            checkcast byte[]
        11: .line 1818
            ldc "UTF-8"
        12: .line 1816
            invokespecial java.lang.String.<init>:([BLjava/lang/String;)V
            astore 8 /* sourceEncoding */
        13: .line 1819
            goto 17
      StackMap locals: sun.awt.datatransfer.DataTransferer$ReencodingInputStream sun.awt.datatransfer.DataTransferer java.io.InputStream long java.lang.String java.awt.datatransfer.Transferable java.lang.Long java.lang.String
      StackMap stack: java.awt.datatransfer.UnsupportedFlavorException
        14: pop
        15: .line 1821
            goto 17
        16: .line 1822
      StackMap locals:
      StackMap stack:
            aload 1
            aload 7 /* lFormat */
            invokevirtual sun.awt.datatransfer.DataTransferer.getCharsetForTextFormat:(Ljava/lang/Long;)Ljava/lang/String;
            astore 8 /* sourceEncoding */
        17: .line 1825
      StackMap locals:
      StackMap stack:
            aload 8 /* sourceEncoding */
            ifnonnull 19
        18: .line 1827
            invokestatic sun.awt.datatransfer.DataTransferer.getDefaultTextCharset:()Ljava/lang/String;
            astore 8 /* sourceEncoding */
        19: .line 1829
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.io.BufferedReader
            dup
        20: .line 1830
            new java.io.InputStreamReader
            dup
            aload 2 /* bytestream */
            aload 8 /* sourceEncoding */
            invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;Ljava/lang/String;)V
            invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
        21: .line 1829
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
        22: .line 1832
            aload 5 /* targetEncoding */
            ifnonnull 24
        23: .line 1837
            new java.lang.NullPointerException
            dup
            ldc "null target encoding"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 1841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 5 /* targetEncoding */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.newEncoder:()Ljava/nio/charset/CharsetEncoder;
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.encoder:Ljava/nio/charset/CharsetEncoder;
        25: .line 1842
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.encoder:Ljava/nio/charset/CharsetEncoder;
            invokevirtual java.nio.charset.CharsetEncoder.maxBytesPerChar:()F
            f2d
            ldc 0.5
            dadd
            d2i
            newarray 8
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.out:[B
        26: .line 1843
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.in:[C
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.inBuf:Ljava/nio/CharBuffer;
        27: .line 1844
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.out:[B
            invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.outBuf:Ljava/nio/ByteBuffer;
        28: .line 1845
            goto 35
      StackMap locals:
      StackMap stack: java.nio.charset.IllegalCharsetNameException
        29: astore 9 /* e */
        start local 9 // java.nio.charset.IllegalCharsetNameException e
        30: .line 1846
            new java.io.IOException
            dup
            aload 9 /* e */
            invokevirtual java.nio.charset.IllegalCharsetNameException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.nio.charset.IllegalCharsetNameException e
        31: .line 1847
      StackMap locals:
      StackMap stack: java.nio.charset.UnsupportedCharsetException
            astore 9 /* e */
        start local 9 // java.nio.charset.UnsupportedCharsetException e
        32: .line 1848
            new java.io.IOException
            dup
            aload 9 /* e */
            invokevirtual java.nio.charset.UnsupportedCharsetException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.nio.charset.UnsupportedCharsetException e
        33: .line 1849
      StackMap locals:
      StackMap stack: java.lang.UnsupportedOperationException
            astore 9 /* e */
        start local 9 // java.lang.UnsupportedOperationException e
        34: .line 1850
            new java.io.IOException
            dup
            aload 9 /* e */
            invokevirtual java.lang.UnsupportedOperationException.toString:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 9 // java.lang.UnsupportedOperationException e
        35: .line 1853
      StackMap locals:
      StackMap stack:
            getstatic sun.awt.datatransfer.DataTransferer.nativeEOLNs:Ljava/util/Map;
            aload 7 /* lFormat */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* sEoln */
        start local 9 // java.lang.String sEoln
        36: .line 1854
            aload 9 /* sEoln */
            ifnull 38
        37: .line 1855
            aload 0 /* this */
            aload 9 /* sEoln */
            invokevirtual java.lang.String.toCharArray:()[C
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eoln:[C
        38: .line 1860
      StackMap locals: java.lang.String
      StackMap stack:
            getstatic sun.awt.datatransfer.DataTransferer.nativeTerminators:Ljava/util/Map;
            aload 7 /* lFormat */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 10 /* terminators */
        start local 10 // java.lang.Integer terminators
        39: .line 1861
            aload 10 /* terminators */
            ifnull 41
        40: .line 1862
            aload 0 /* this */
            aload 10 /* terminators */
            invokevirtual java.lang.Integer.intValue:()I
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.numTerminators:I
        41: .line 1864
      StackMap locals: java.lang.Integer
      StackMap stack:
            return
        end local 10 // java.lang.Integer terminators
        end local 9 // java.lang.String sEoln
        end local 8 // java.lang.String sourceEncoding
        end local 7 // java.lang.Long lFormat
        end local 6 // java.awt.datatransfer.Transferable localeTransferable
        end local 5 // java.lang.String targetEncoding
        end local 3 // long format
        end local 2 // java.io.InputStream bytestream
        end local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   42     0                this  Lsun/awt/datatransfer/DataTransferer$ReencodingInputStream;
            0   42     2          bytestream  Ljava/io/InputStream;
            0   42     3              format  J
            0   42     5      targetEncoding  Ljava/lang/String;
            0   42     6  localeTransferable  Ljava/awt/datatransfer/Transferable;
            4   42     7             lFormat  Ljava/lang/Long;
            5   42     8      sourceEncoding  Ljava/lang/String;
           30   31     9                   e  Ljava/nio/charset/IllegalCharsetNameException;
           32   33     9                   e  Ljava/nio/charset/UnsupportedCharsetException;
           34   35     9                   e  Ljava/lang/UnsupportedOperationException;
           36   42     9               sEoln  Ljava/lang/String;
           39   42    10         terminators  Ljava/lang/Integer;
      Exception table:
        from    to  target  type
           9    13      14  Class java.awt.datatransfer.UnsupportedFlavorException
          24    28      29  Class java.nio.charset.IllegalCharsetNameException
          24    28      31  Class java.nio.charset.UnsupportedCharsetException
          24    28      33  Class java.lang.UnsupportedOperationException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                    Name  Flags
      this$0              final
      bytestream          
      format              
      targetEncoding      
      localeTransferable  

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
         0: .line 1867
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eos:Z
            ifeq 2
         1: .line 1868
            iconst_m1
            ireturn
         2: .line 1871
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.index:I
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.limit:I
            if_icmplt 20
         3: .line 1872
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.read:()I
            istore 1 /* c */
        start local 1 // int c
         4: .line 1874
            iload 1 /* c */
            iconst_m1
            if_icmpne 7
         5: .line 1875
            aload 0 /* this */
            iconst_1
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eos:Z
         6: .line 1876
            iconst_m1
            ireturn
         7: .line 1880
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.numTerminators:I
            ifle 10
            iload 1 /* c */
            ifne 10
         8: .line 1881
            aload 0 /* this */
            iconst_1
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eos:Z
         9: .line 1882
            iconst_m1
            ireturn
        10: .line 1883
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eoln:[C
            ifnull 12
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eoln:[C
            iload 1 /* c */
            invokevirtual sun.awt.datatransfer.DataTransferer$ReencodingInputStream.matchCharArray:([CI)Z
            ifeq 12
        11: .line 1884
            bipush 10
            istore 1 /* c */
        12: .line 1887
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.in:[C
            iconst_0
            iload 1 /* c */
            i2c
            castore
        13: .line 1889
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.inBuf:Ljava/nio/CharBuffer;
            invokevirtual java.nio.CharBuffer.rewind:()Ljava/nio/Buffer;
            pop
        14: .line 1890
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.outBuf:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/Buffer;
            pop
        15: .line 1891
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.encoder:Ljava/nio/charset/CharsetEncoder;
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.inBuf:Ljava/nio/CharBuffer;
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.outBuf:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual java.nio.charset.CharsetEncoder.encode:(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;
            pop
        16: .line 1892
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.outBuf:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
            pop
        17: .line 1893
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.outBuf:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.limit:I
        18: .line 1895
            aload 0 /* this */
            iconst_0
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.index:I
        19: .line 1897
            aload 0 /* this */
            invokevirtual sun.awt.datatransfer.DataTransferer$ReencodingInputStream.read:()I
            ireturn
        end local 1 // int c
        20: .line 1899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.out:[B
            aload 0 /* this */
            dup
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.index:I
            dup_x1
            iconst_1
            iadd
            putfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.index:I
            baload
            sipush 255
            iand
            ireturn
        end local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   21     0  this  Lsun/awt/datatransfer/DataTransferer$ReencodingInputStream;
            4   20     1     c  I
    Exceptions:
      throws java.io.IOException

  public int available();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
         0: .line 1904
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.eos:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.limit:I
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.index:I
            isub
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/awt/datatransfer/DataTransferer$ReencodingInputStream;
    Exceptions:
      throws java.io.IOException

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
         0: .line 1908
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.close:()V
         1: .line 1909
            return
        end local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/awt/datatransfer/DataTransferer$ReencodingInputStream;
    Exceptions:
      throws java.io.IOException

  private boolean matchCharArray(char[], int);
    descriptor: ([CI)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
        start local 1 // char[] array
        start local 2 // int c
         0: .line 1921
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
            aload 1 /* array */
            arraylength
            invokevirtual java.io.BufferedReader.mark:(I)V
         1: .line 1923
            iconst_0
            istore 3 /* count */
        start local 3 // int count
         2: .line 1924
            iload 2 /* c */
            i2c
            aload 1 /* array */
            iconst_0
            caload
            if_icmpne 9
         3: .line 1925
            iconst_1
            istore 3 /* count */
            goto 8
         4: .line 1926
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.read:()I
            istore 2 /* c */
         5: .line 1927
            iload 2 /* c */
            iconst_m1
            if_icmpeq 9
            iload 2 /* c */
            i2c
            aload 1 /* array */
            iload 3 /* count */
            caload
            if_icmpeq 7
         6: .line 1928
            goto 9
         7: .line 1925
      StackMap locals:
      StackMap stack:
            iinc 3 /* count */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* count */
            aload 1 /* array */
            arraylength
            if_icmplt 4
         9: .line 1933
      StackMap locals:
      StackMap stack:
            iload 3 /* count */
            aload 1 /* array */
            arraylength
            if_icmpne 11
        10: .line 1934
            iconst_1
            ireturn
        11: .line 1936
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.awt.datatransfer.DataTransferer$ReencodingInputStream.wrapped:Ljava/io/BufferedReader;
            invokevirtual java.io.BufferedReader.reset:()V
        12: .line 1937
            iconst_0
            ireturn
        end local 3 // int count
        end local 2 // int c
        end local 1 // char[] array
        end local 0 // sun.awt.datatransfer.DataTransferer$ReencodingInputStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lsun/awt/datatransfer/DataTransferer$ReencodingInputStream;
            0   13     1  array  [C
            0   13     2      c  I
            2   13     3  count  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      array  
      c      
}
SourceFile: "DataTransferer.java"
NestHost: sun.awt.datatransfer.DataTransferer
InnerClasses:
  public ReencodingInputStream = sun.awt.datatransfer.DataTransferer$ReencodingInputStream of sun.awt.datatransfer.DataTransferer