public class org.postgresql.core.EncodingPredictor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.postgresql.core.EncodingPredictor
  super_class: java.lang.Object
{
  private static final org.postgresql.core.EncodingPredictor$Translation[] FATAL_TRANSLATIONS;
    descriptor: [Lorg/postgresql/core/EncodingPredictor$Translation;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=12, locals=0, args_size=0
         0: .line 50
            bipush 6
            anewarray org.postgresql.core.EncodingPredictor$Translation
            dup
            iconst_0
         1: .line 51
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            ldc "\u0412\u0410\u0416\u041D\u041E"
            aconst_null
            ldc "ru"
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "WIN"
            aastore
            dup
            iconst_1
            ldc "ALT"
            aastore
            dup
            iconst_2
            ldc "KOI8"
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
            dup
            iconst_1
         2: .line 52
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            ldc "\u81F4\u547D\u9519\u8BEF"
            aconst_null
            ldc "zh_CN"
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "EUC_CN"
            aastore
            dup
            iconst_1
            ldc "GBK"
            aastore
            dup
            iconst_2
            ldc "BIG5"
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
            dup
            iconst_2
         3: .line 53
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            ldc "KATASTROFALNY"
            aconst_null
            ldc "pl"
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LATIN2"
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
            dup
            iconst_3
         4: .line 54
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            ldc "FATALE"
            aconst_null
            ldc "it"
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LATIN1"
            aastore
            dup
            iconst_1
            ldc "LATIN9"
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
            dup
            iconst_4
         5: .line 55
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            ldc "FATAL"
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
            ldc "\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"
            aastore
            dup
            iconst_1
         6: .line 56
            ldc "\u30ED\u30FC\u30EB"
            aastore
            dup
            iconst_2
            ldc "\u30E6\u30FC\u30B6"
            aastore
            ldc "ja"
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            ldc "EUC_JP"
            aastore
            dup
            iconst_1
            ldc "SJIS"
         7: .line 55
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
            dup
            iconst_5
         8: .line 57
            new org.postgresql.core.EncodingPredictor$Translation
            dup
            aconst_null
            aconst_null
            ldc "fr/de/es/pt_BR"
            bipush 6
            anewarray java.lang.String
            dup
            iconst_0
            ldc "LATIN1"
            aastore
            dup
            iconst_1
            ldc "LATIN3"
            aastore
            dup
            iconst_2
            ldc "LATIN4"
            aastore
            dup
            iconst_3
            ldc "LATIN5"
            aastore
            dup
            iconst_4
         9: .line 58
            ldc "LATIN7"
            aastore
            dup
            iconst_5
            ldc "LATIN9"
        10: .line 57
            aastore
            invokespecial org.postgresql.core.EncodingPredictor$Translation.<init>:(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
            aastore
        11: .line 49
            putstatic org.postgresql.core.EncodingPredictor.FATAL_TRANSLATIONS:[Lorg/postgresql/core/EncodingPredictor$Translation;
        12: .line 59
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.postgresql.core.EncodingPredictor this
         0: .line 19
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.postgresql.core.EncodingPredictor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/postgresql/core/EncodingPredictor;

  public static org.postgresql.core.EncodingPredictor$DecodeResult decode(byte[], int, int);
    descriptor: ([BII)Lorg/postgresql/core/EncodingPredictor$DecodeResult;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=19, args_size=3
        start local 0 // byte[] bytes
        start local 1 // int offset
        start local 2 // int length
         0: .line 62
            invokestatic org.postgresql.core.Encoding.defaultEncoding:()Lorg/postgresql/core/Encoding;
            astore 3 /* defaultEncoding */
        start local 3 // org.postgresql.core.Encoding defaultEncoding
         1: .line 63
            getstatic org.postgresql.core.EncodingPredictor.FATAL_TRANSLATIONS:[Lorg/postgresql/core/EncodingPredictor$Translation;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 41
      StackMap locals: byte[] int int org.postgresql.core.Encoding top int int org.postgresql.core.EncodingPredictor$Translation[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* tr */
        start local 4 // org.postgresql.core.EncodingPredictor$Translation tr
         3: .line 64
            aload 4 /* tr */
            getfield org.postgresql.core.EncodingPredictor$Translation.encodings:[Ljava/lang/String;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 39
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] top int int java.lang.String[]
      StackMap stack:
         4: aload 11
            iload 9
            aaload
            astore 8 /* encoding */
        start local 8 // java.lang.String encoding
         5: .line 65
            aload 8 /* encoding */
            invokestatic org.postgresql.core.Encoding.getDatabaseEncoding:(Ljava/lang/String;)Lorg/postgresql/core/Encoding;
            astore 12 /* encoder */
        start local 12 // org.postgresql.core.Encoding encoder
         6: .line 66
            aload 12 /* encoder */
            aload 3 /* defaultEncoding */
            if_acmpne 8
         7: .line 67
            goto 38
         8: .line 71
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding
      StackMap stack:
            aload 4 /* tr */
            getfield org.postgresql.core.EncodingPredictor$Translation.fatalText:Ljava/lang/String;
            ifnull 19
         9: .line 74
            aload 12 /* encoder */
            aload 4 /* tr */
            getfield org.postgresql.core.EncodingPredictor$Translation.fatalText:Ljava/lang/String;
            invokevirtual org.postgresql.core.Encoding.encode:(Ljava/lang/String;)[B
            astore 14 /* tmp */
        start local 14 // byte[] tmp
        10: .line 75
            aload 14 /* tmp */
            arraylength
            iconst_2
            iadd
            newarray 8
            astore 13 /* encoded */
        start local 13 // byte[] encoded
        11: .line 76
            aload 13 /* encoded */
            iconst_0
            bipush 83
            bastore
        12: .line 77
            aload 13 /* encoded */
            aload 13 /* encoded */
            arraylength
            iconst_1
            isub
            iconst_0
            bastore
        13: .line 78
            aload 14 /* tmp */
            iconst_0
            aload 13 /* encoded */
            iconst_1
            aload 14 /* tmp */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        end local 14 // byte[] tmp
        14: .line 79
            goto 17
        end local 13 // byte[] encoded
      StackMap locals:
      StackMap stack: java.io.IOException
        15: pop
        16: .line 80
            goto 38
        start local 13 // byte[] encoded
        17: .line 83
      StackMap locals: byte[]
      StackMap stack:
            aload 0 /* bytes */
            iload 1 /* offset */
            iload 2 /* length */
            aload 13 /* encoded */
            iconst_0
            aload 13 /* encoded */
            arraylength
            invokestatic org.postgresql.core.EncodingPredictor.arrayContains:([BII[BII)Z
            ifne 19
        18: .line 84
            goto 38
        end local 13 // byte[] encoded
        19: .line 89
      StackMap locals:
      StackMap stack:
            aload 4 /* tr */
            getfield org.postgresql.core.EncodingPredictor$Translation.texts:[Ljava/lang/String;
            ifnull 32
        20: .line 90
            iconst_0
            istore 13 /* foundOne */
        start local 13 // boolean foundOne
        21: .line 91
            aload 4 /* tr */
            getfield org.postgresql.core.EncodingPredictor$Translation.texts:[Ljava/lang/String;
            dup
            astore 17
            arraylength
            istore 16
            iconst_0
            istore 15
            goto 29
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding int top int int java.lang.String[]
      StackMap stack:
        22: aload 17
            iload 15
            aaload
            astore 14 /* text */
        start local 14 // java.lang.String text
        23: .line 93
            aload 12 /* encoder */
            aload 14 /* text */
            invokevirtual org.postgresql.core.Encoding.encode:(Ljava/lang/String;)[B
            astore 18 /* textBytes */
        start local 18 // byte[] textBytes
        24: .line 94
            aload 0 /* bytes */
            iload 1 /* offset */
            iload 2 /* length */
            aload 18 /* textBytes */
            iconst_0
            aload 18 /* textBytes */
            arraylength
            invokestatic org.postgresql.core.EncodingPredictor.arrayContains:([BII[BII)Z
            ifeq 28
        25: .line 95
            iconst_1
            istore 13 /* foundOne */
        26: .line 96
            goto 30
        end local 18 // byte[] textBytes
        27: .line 98
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding int java.lang.String int int java.lang.String[]
      StackMap stack: java.io.IOException
            pop
        end local 14 // java.lang.String text
        28: .line 91
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding int top int int java.lang.String[]
      StackMap stack:
            iinc 15 1
      StackMap locals:
      StackMap stack:
        29: iload 15
            iload 16
            if_icmplt 22
        30: .line 102
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding int
      StackMap stack:
            iload 13 /* foundOne */
            ifne 32
        31: .line 104
            goto 38
        end local 13 // boolean foundOne
        32: .line 109
      StackMap locals:
      StackMap stack:
            aload 12 /* encoder */
            aload 0 /* bytes */
            iload 1 /* offset */
            iload 2 /* length */
            invokevirtual org.postgresql.core.Encoding.decode:([BII)Ljava/lang/String;
            astore 13 /* decoded */
        start local 13 // java.lang.String decoded
        33: .line 110
            aload 13 /* decoded */
            ldc 65533
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 35
        34: .line 112
            goto 38
        35: .line 114
      StackMap locals: java.lang.String
      StackMap stack:
            new org.postgresql.core.EncodingPredictor$DecodeResult
            dup
            aload 13 /* decoded */
            aload 12 /* encoder */
            invokevirtual org.postgresql.core.Encoding.name:()Ljava/lang/String;
            invokespecial org.postgresql.core.EncodingPredictor$DecodeResult.<init>:(Ljava/lang/String;Ljava/lang/String;)V
        36: areturn
        end local 13 // java.lang.String decoded
        37: .line 115
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] java.lang.String int int java.lang.String[] org.postgresql.core.Encoding
      StackMap stack: java.io.IOException
            pop
        end local 12 // org.postgresql.core.Encoding encoder
        end local 8 // java.lang.String encoding
        38: .line 64
      StackMap locals: byte[] int int org.postgresql.core.Encoding org.postgresql.core.EncodingPredictor$Translation int int org.postgresql.core.EncodingPredictor$Translation[] top int int java.lang.String[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        39: iload 9
            iload 10
            if_icmplt 4
        end local 4 // org.postgresql.core.EncodingPredictor$Translation tr
        40: .line 63
            iinc 5 1
      StackMap locals: byte[] int int org.postgresql.core.Encoding top int int org.postgresql.core.EncodingPredictor$Translation[]
      StackMap stack:
        41: iload 5
            iload 6
            if_icmplt 2
        42: .line 120
            aconst_null
            areturn
        end local 3 // org.postgresql.core.Encoding defaultEncoding
        end local 2 // int length
        end local 1 // int offset
        end local 0 // byte[] bytes
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   43     0            bytes  [B
            0   43     1           offset  I
            0   43     2           length  I
            1   43     3  defaultEncoding  Lorg/postgresql/core/Encoding;
            3   40     4               tr  Lorg/postgresql/core/EncodingPredictor$Translation;
            5   38     8         encoding  Ljava/lang/String;
            6   38    12          encoder  Lorg/postgresql/core/Encoding;
           11   15    13          encoded  [B
           17   19    13          encoded  [B
           10   14    14              tmp  [B
           21   32    13         foundOne  Z
           23   28    14             text  Ljava/lang/String;
           24   27    18        textBytes  [B
           33   37    13          decoded  Ljava/lang/String;
      Exception table:
        from    to  target  type
           9    14      15  Class java.io.IOException
          23    26      27  Class java.io.IOException
          32    34      37  Class java.io.IOException
          35    36      37  Class java.io.IOException
    MethodParameters:
        Name  Flags
      bytes   
      offset  
      length  

  private static boolean arrayContains(byte[], int, int, byte[], int, int);
    descriptor: ([BII[BII)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=6
        start local 0 // byte[] first
        start local 1 // int firstOffset
        start local 2 // int firstLength
        start local 3 // byte[] second
        start local 4 // int secondOffset
        start local 5 // int secondLength
         0: .line 127
            iload 2 /* firstLength */
            iload 5 /* secondLength */
            if_icmpge 2
         1: .line 128
            iconst_0
            ireturn
         2: .line 131
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         3: goto 13
         4: .line 132
      StackMap locals: int
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 6 /* i */
            iload 2 /* firstLength */
            if_icmpge 6
            aload 0 /* first */
            iload 1 /* firstOffset */
            iload 6 /* i */
            iadd
            baload
            aload 3 /* second */
            iload 4 /* secondOffset */
            baload
            if_icmpne 4
         6: .line 136
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 7 /* j */
        start local 7 // int j
         7: .line 137
            goto 9
      StackMap locals: int
      StackMap stack:
         8: iinc 7 /* j */ 1
      StackMap locals:
      StackMap stack:
         9: iload 7 /* j */
            iload 5 /* secondLength */
            if_icmpge 10
            aload 0 /* first */
            iload 1 /* firstOffset */
            iload 6 /* i */
            iadd
            iload 7 /* j */
            iadd
            baload
            aload 3 /* second */
            iload 4 /* secondOffset */
            iload 7 /* j */
            iadd
            baload
            if_icmpeq 8
        10: .line 140
      StackMap locals:
      StackMap stack:
            iload 7 /* j */
            iload 5 /* secondLength */
            if_icmpne 12
        11: .line 141
            iconst_1
            ireturn
        end local 7 // int j
        12: .line 131
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 6 /* i */
            iload 2 /* firstLength */
            if_icmplt 5
        end local 6 // int i
        14: .line 144
            iconst_0
            ireturn
        end local 5 // int secondLength
        end local 4 // int secondOffset
        end local 3 // byte[] second
        end local 2 // int firstLength
        end local 1 // int firstOffset
        end local 0 // byte[] first
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0         first  [B
            0   15     1   firstOffset  I
            0   15     2   firstLength  I
            0   15     3        second  [B
            0   15     4  secondOffset  I
            0   15     5  secondLength  I
            3   14     6             i  I
            7   12     7             j  I
    MethodParameters:
              Name  Flags
      first         
      firstOffset   
      firstLength   
      second        
      secondOffset  
      secondLength  
}
SourceFile: "EncodingPredictor.java"
NestMembers:
  org.postgresql.core.EncodingPredictor$DecodeResult  org.postgresql.core.EncodingPredictor$Translation
InnerClasses:
  public DecodeResult = org.postgresql.core.EncodingPredictor$DecodeResult of org.postgresql.core.EncodingPredictor
  Translation = org.postgresql.core.EncodingPredictor$Translation of org.postgresql.core.EncodingPredictor