abstract class sun.font.CMap
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.font.CMap
  super_class: java.lang.Object
{
  static final short ShiftJISEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  static final short GBKEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  static final short Big5Encoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  static final short WansungEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  static final short JohabEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  static final short MSUnicodeSurrogateEncoding;
    descriptor: S
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  static final char noSuchChar;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65533

  static final int SHORTMASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

  static final int INTMASK;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 2147483647

  static final char[][] converterMaps;
    descriptor: [[C
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  char[] xlat;
    descriptor: [C
    flags: (0x0000) 

  sun.font.CMap$UVS uvs;
    descriptor: Lsun/font/CMap$UVS;
    flags: (0x0000) 

  public static final sun.font.CMap$NullCMapClass theNullCmap;
    descriptor: Lsun/font/CMap$NullCMapClass;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 135
            bipush 7
            anewarray char[]
            putstatic sun.font.CMap.converterMaps:[[C
         1: .line 1089
            new sun.font.CMap$NullCMapClass
            dup
            invokespecial sun.font.CMap$NullCMapClass.<init>:()V
            putstatic sun.font.CMap.theNullCmap:Lsun/font/CMap$NullCMapClass;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.font.CMap this
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 143
            aload 0 /* this */
            aconst_null
            putfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
         2: .line 52
            return
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/font/CMap;

  static sun.font.CMap initialize(sun.font.TrueTypeFont);
    descriptor: (Lsun/font/TrueTypeFont;)Lsun/font/CMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=18, args_size=1
        start local 0 // sun.font.TrueTypeFont font
         0: .line 147
            aconst_null
            astore 1 /* cmap */
        start local 1 // sun.font.CMap cmap
         1: .line 149
            iconst_m1
            istore 4 /* encodingID */
        start local 4 // int encodingID
         2: .line 151
            iconst_0
            istore 5 /* three0 */
        start local 5 // int three0
         3: iconst_0
            istore 6 /* three1 */
        start local 6 // int three1
         4: iconst_0
            istore 7 /* three2 */
        start local 7 // int three2
         5: iconst_0
            istore 8 /* three3 */
        start local 8 // int three3
         6: iconst_0
            istore 9 /* three4 */
        start local 9 // int three4
         7: iconst_0
            istore 10 /* three5 */
        start local 10 // int three5
         8: .line 152
            iconst_0
            istore 11 /* three6 */
        start local 11 // int three6
         9: iconst_0
            istore 12 /* three10 */
        start local 12 // int three10
        10: .line 153
            iconst_0
            istore 13 /* zero5 */
        start local 13 // int zero5
        11: .line 154
            iconst_0
            istore 14 /* threeStar */
        start local 14 // boolean threeStar
        12: .line 156
            aload 0 /* font */
            ldc 1668112752
            invokevirtual sun.font.TrueTypeFont.getTableBuffer:(I)Ljava/nio/ByteBuffer;
            astore 15 /* cmapBuffer */
        start local 15 // java.nio.ByteBuffer cmapBuffer
        13: .line 157
            aload 0 /* font */
            ldc 1668112752
            invokevirtual sun.font.TrueTypeFont.getTableSize:(I)I
            pop
        14: .line 158
            aload 15 /* cmapBuffer */
            iconst_2
            invokevirtual java.nio.ByteBuffer.getShort:(I)S
            istore 16 /* numberSubTables */
        start local 16 // short numberSubTables
        15: .line 161
            iconst_0
            istore 17 /* i */
        start local 17 // int i
        16: goto 39
        17: .line 162
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
            aload 15 /* cmapBuffer */
            iload 17 /* i */
            bipush 8
            imul
            iconst_4
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        18: .line 163
            aload 15 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 3 /* platformID */
        start local 3 // int platformID
        19: .line 164
            iload 3 /* platformID */
            iconst_3
            if_icmpne 33
        20: .line 165
            iconst_1
            istore 14 /* threeStar */
        21: .line 166
            aload 15 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 4 /* encodingID */
        22: .line 167
            aload 15 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 2 /* offset */
        start local 2 // int offset
        23: .line 168
            iload 4 /* encodingID */
            tableswitch { // 0 - 10
                    0: 24
                    1: 25
                    2: 26
                    3: 27
                    4: 28
                    5: 29
                    6: 30
                    7: 32
                    8: 32
                    9: 32
                   10: 31
              default: 32
          }
        24: .line 169
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap int int int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
            iload 2 /* offset */
            istore 5 /* three0 */
            goto 38
        25: .line 170
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 6 /* three1 */
            goto 38
        26: .line 171
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 7 /* three2 */
            goto 38
        27: .line 172
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 8 /* three3 */
            goto 38
        28: .line 173
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 9 /* three4 */
            goto 38
        29: .line 174
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 10 /* three5 */
            goto 38
        30: .line 175
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 11 /* three6 */
            goto 38
        31: .line 176
      StackMap locals:
      StackMap stack:
            iload 2 /* offset */
            istore 12 /* three10 */
        32: .line 178
      StackMap locals:
      StackMap stack:
            goto 38
        end local 2 // int offset
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top int int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
        33: iload 3 /* platformID */
            ifne 38
        34: .line 179
            aload 15 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getShort:()S
            istore 4 /* encodingID */
        35: .line 180
            aload 15 /* cmapBuffer */
            invokevirtual java.nio.ByteBuffer.getInt:()I
            istore 2 /* offset */
        start local 2 // int offset
        36: .line 181
            iload 4 /* encodingID */
            iconst_5
            if_icmpne 38
        37: .line 182
            iload 2 /* offset */
            istore 13 /* zero5 */
        end local 2 // int offset
        38: .line 161
      StackMap locals:
      StackMap stack:
            iinc 17 /* i */ 1
        end local 3 // int platformID
      StackMap locals: sun.font.TrueTypeFont sun.font.CMap top top int int int int int int int int int int int java.nio.ByteBuffer int int
      StackMap stack:
        39: iload 17 /* i */
            iload 16 /* numberSubTables */
            if_icmplt 17
        end local 17 // int i
        40: .line 188
            iload 14 /* threeStar */
            ifeq 92
        41: .line 189
            iload 12 /* three10 */
            ifeq 44
        42: .line 190
            aload 15 /* cmapBuffer */
            iload 12 /* three10 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        43: .line 191
            goto 93
        44: .line 192
      StackMap locals:
      StackMap stack:
            iload 5 /* three0 */
            ifeq 47
        45: .line 222
            aload 15 /* cmapBuffer */
            iload 5 /* three0 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        46: .line 224
            goto 93
        47: .line 225
      StackMap locals:
      StackMap stack:
            iload 6 /* three1 */
            ifeq 50
        48: .line 226
            aload 15 /* cmapBuffer */
            iload 6 /* three1 */
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        49: .line 227
            goto 93
        50: .line 228
      StackMap locals:
      StackMap stack:
            iload 7 /* three2 */
            ifeq 55
        51: .line 229
            aload 15 /* cmapBuffer */
            iload 7 /* three2 */
        52: .line 230
            iconst_2
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        53: .line 229
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        54: .line 231
            goto 93
        55: .line 232
      StackMap locals:
      StackMap stack:
            iload 8 /* three3 */
            ifeq 60
        56: .line 233
            aload 15 /* cmapBuffer */
            iload 8 /* three3 */
        57: .line 234
            iconst_3
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        58: .line 233
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        59: .line 235
            goto 93
        60: .line 236
      StackMap locals:
      StackMap stack:
            iload 9 /* three4 */
            ifeq 82
        61: .line 243
            getstatic sun.font.FontUtilities.isSolaris:Z
            ifeq 78
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
            ifnull 78
        62: .line 244
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        63: .line 245
            ldc "/usr/openwin/lib/locale/zh_CN.EUC/X11/fonts/TrueType"
        64: .line 244
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        65: .line 245
            ifne 74
        66: .line 246
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        67: .line 247
            ldc "/usr/openwin/lib/locale/zh_CN/X11/fonts/TrueType"
        68: .line 246
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        69: .line 247
            ifne 74
        70: .line 248
            aload 0 /* font */
            getfield sun.font.TrueTypeFont.platName:Ljava/lang/String;
        71: .line 249
            ldc "/usr/openwin/lib/locale/zh/X11/fonts/TrueType"
        72: .line 248
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
        73: .line 249
            ifeq 78
        74: .line 250
      StackMap locals:
      StackMap stack:
            aload 15 /* cmapBuffer */
            iload 9 /* three4 */
        75: .line 251
            iconst_3
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        76: .line 250
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        77: .line 252
            goto 93
        78: .line 254
      StackMap locals:
      StackMap stack:
            aload 15 /* cmapBuffer */
            iload 9 /* three4 */
        79: .line 255
            iconst_4
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        80: .line 254
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        81: .line 257
            goto 93
        82: .line 258
      StackMap locals:
      StackMap stack:
            iload 10 /* three5 */
            ifeq 87
        83: .line 259
            aload 15 /* cmapBuffer */
            iload 10 /* three5 */
        84: .line 260
            iconst_5
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        85: .line 259
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        86: .line 261
            goto 93
        87: .line 262
      StackMap locals:
      StackMap stack:
            iload 11 /* three6 */
            ifeq 93
        88: .line 263
            aload 15 /* cmapBuffer */
            iload 11 /* three6 */
        89: .line 264
            bipush 6
            invokestatic sun.font.CMap.getConverterMap:(S)[C
        90: .line 263
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        91: .line 266
            goto 93
        92: .line 271
      StackMap locals:
      StackMap stack:
            aload 15 /* cmapBuffer */
            aload 15 /* cmapBuffer */
            bipush 8
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            aconst_null
            invokestatic sun.font.CMap.createCMap:(Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
            astore 1 /* cmap */
        93: .line 274
      StackMap locals:
      StackMap stack:
            aload 1 /* cmap */
            ifnull 95
            iload 13 /* zero5 */
            ifeq 95
        94: .line 275
            aload 1 /* cmap */
            aload 15 /* cmapBuffer */
            iload 13 /* zero5 */
            invokevirtual sun.font.CMap.createUVS:(Ljava/nio/ByteBuffer;I)V
        95: .line 277
      StackMap locals:
      StackMap stack:
            aload 1 /* cmap */
            areturn
        end local 16 // short numberSubTables
        end local 15 // java.nio.ByteBuffer cmapBuffer
        end local 14 // boolean threeStar
        end local 13 // int zero5
        end local 12 // int three10
        end local 11 // int three6
        end local 10 // int three5
        end local 9 // int three4
        end local 8 // int three3
        end local 7 // int three2
        end local 6 // int three1
        end local 5 // int three0
        end local 4 // int encodingID
        end local 1 // sun.font.CMap cmap
        end local 0 // sun.font.TrueTypeFont font
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   96     0             font  Lsun/font/TrueTypeFont;
            1   96     1             cmap  Lsun/font/CMap;
           23   33     2           offset  I
           36   38     2           offset  I
           19   39     3       platformID  I
            2   96     4       encodingID  I
            3   96     5           three0  I
            4   96     6           three1  I
            5   96     7           three2  I
            6   96     8           three3  I
            7   96     9           three4  I
            8   96    10           three5  I
            9   96    11           three6  I
           10   96    12          three10  I
           11   96    13            zero5  I
           12   96    14        threeStar  Z
           13   96    15       cmapBuffer  Ljava/nio/ByteBuffer;
           15   96    16  numberSubTables  S
           16   40    17                i  I
    MethodParameters:
      Name  Flags
      font  

  static char[] getConverter(short);
    descriptor: (S)[C
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=11, args_size=1
        start local 0 // short encodingID
         0: .line 284
            ldc 32768
            istore 1 /* dBegin */
        start local 1 // int dBegin
         1: .line 285
            ldc 65535
            istore 2 /* dEnd */
        start local 2 // int dEnd
         2: .line 288
            iload 0 /* encodingID */
            tableswitch { // 2 - 6
                    2: 3
                    3: 7
                    4: 11
                    5: 15
                    6: 19
              default: 23
          }
         3: .line 290
      StackMap locals: int int
      StackMap stack:
            ldc 33088
            istore 1 /* dBegin */
         4: .line 291
            ldc 64764
            istore 2 /* dEnd */
         5: .line 292
            ldc "SJIS"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
         6: .line 293
            goto 24
        end local 3 // java.lang.String encoding
         7: .line 295
      StackMap locals:
      StackMap stack:
            ldc 33088
            istore 1 /* dBegin */
         8: .line 296
            ldc 65184
            istore 2 /* dEnd */
         9: .line 297
            ldc "GBK"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        10: .line 298
            goto 24
        end local 3 // java.lang.String encoding
        11: .line 300
      StackMap locals:
      StackMap stack:
            ldc 41280
            istore 1 /* dBegin */
        12: .line 301
            ldc 65278
            istore 2 /* dEnd */
        13: .line 302
            ldc "Big5"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        14: .line 303
            goto 24
        end local 3 // java.lang.String encoding
        15: .line 305
      StackMap locals:
      StackMap stack:
            ldc 41377
            istore 1 /* dBegin */
        16: .line 306
            ldc 65246
            istore 2 /* dEnd */
        17: .line 307
            ldc "EUC_KR"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        18: .line 308
            goto 24
        end local 3 // java.lang.String encoding
        19: .line 310
      StackMap locals:
      StackMap stack:
            ldc 33089
            istore 1 /* dBegin */
        20: .line 311
            ldc 65022
            istore 2 /* dEnd */
        21: .line 312
            ldc "Johab"
            astore 3 /* encoding */
        start local 3 // java.lang.String encoding
        22: .line 313
            goto 24
        end local 3 // java.lang.String encoding
        23: .line 315
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        start local 3 // java.lang.String encoding
        24: .line 319
      StackMap locals: java.lang.String
      StackMap stack:
            ldc 65536
            newarray 5
            astore 4 /* convertedChars */
        start local 4 // char[] convertedChars
        25: .line 320
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        26: goto 29
        27: .line 321
      StackMap locals: char[] int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 5 /* i */
            ldc 65533
            castore
        28: .line 320
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        29: iload 5 /* i */
            ldc 65536
            if_icmplt 27
        end local 5 // int i
        30: .line 324
            iload 2 /* dEnd */
            iload 1 /* dBegin */
            isub
            iconst_1
            iadd
            iconst_2
            imul
            newarray 8
            astore 5 /* inputBytes */
        start local 5 // byte[] inputBytes
        31: .line 325
            iload 2 /* dEnd */
            iload 1 /* dBegin */
            isub
            iconst_1
            iadd
            newarray 5
            astore 6 /* outputChars */
        start local 6 // char[] outputChars
        32: .line 327
            iconst_0
            istore 7 /* j */
        start local 7 // int j
        33: .line 329
            iload 0 /* encodingID */
            iconst_2
            if_icmpne 46
        34: .line 330
            iload 1 /* dBegin */
            istore 9 /* i */
        start local 9 // int i
        35: goto 44
        36: .line 331
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            iload 9 /* i */
            bipush 8
            ishr
            sipush 255
            iand
            istore 8 /* firstByte */
        start local 8 // int firstByte
        37: .line 332
            iload 8 /* firstByte */
            sipush 161
            if_icmplt 41
            iload 8 /* firstByte */
            sipush 223
            if_icmpgt 41
        38: .line 334
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iconst_m1
            bastore
        39: .line 335
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iconst_m1
            bastore
        40: .line 336
            goto 43
        41: .line 337
      StackMap locals: int int int java.lang.String char[] byte[] char[] int int int
      StackMap stack:
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 8 /* firstByte */
            i2b
            bastore
        42: .line 338
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            sipush 255
            iand
            i2b
            bastore
        43: .line 330
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
        end local 8 // int firstByte
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
        44: iload 9 /* i */
            iload 2 /* dEnd */
            if_icmple 36
        end local 9 // int i
        45: .line 341
            goto 52
        46: .line 342
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            iload 1 /* dBegin */
            istore 9 /* i */
        start local 9 // int i
        47: goto 51
        48: .line 343
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            bipush 8
            ishr
            sipush 255
            iand
            i2b
            bastore
        49: .line 344
            aload 5 /* inputBytes */
            iload 7 /* j */
            iinc 7 /* j */ 1
            iload 9 /* i */
            sipush 255
            iand
            i2b
            bastore
        50: .line 342
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        51: iload 9 /* i */
            iload 2 /* dEnd */
            if_icmple 48
        end local 9 // int i
        52: .line 348
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            aload 3 /* encoding */
            invokestatic java.nio.charset.Charset.forName:(Ljava/lang/String;)Ljava/nio/charset/Charset;
            invokevirtual java.nio.charset.Charset.newDecoder:()Ljava/nio/charset/CharsetDecoder;
        53: .line 349
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onMalformedInput:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        54: .line 350
            getstatic java.nio.charset.CodingErrorAction.REPLACE:Ljava/nio/charset/CodingErrorAction;
            invokevirtual java.nio.charset.CharsetDecoder.onUnmappableCharacter:(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;
        55: .line 351
            ldc "\u0000"
            invokevirtual java.nio.charset.CharsetDecoder.replaceWith:(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;
        56: .line 352
            aload 5 /* inputBytes */
            iconst_0
            aload 5 /* inputBytes */
            arraylength
            invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
        57: .line 353
            aload 6 /* outputChars */
            iconst_0
            aload 6 /* outputChars */
            arraylength
            invokestatic java.nio.CharBuffer.wrap:([CII)Ljava/nio/CharBuffer;
        58: .line 354
            iconst_1
        59: .line 352
            invokevirtual java.nio.charset.CharsetDecoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;
            pop
        60: .line 357
            bipush 32
            istore 9 /* i */
        start local 9 // int i
        61: goto 64
        62: .line 358
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 9 /* i */
            iload 9 /* i */
            i2c
            castore
        63: .line 357
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 9 /* i */
            bipush 126
            if_icmple 62
        end local 9 // int i
        65: .line 362
            iload 0 /* encodingID */
            iconst_2
            if_icmpne 71
        66: .line 363
            sipush 161
            istore 9 /* i */
        start local 9 // int i
        67: goto 70
        68: .line 364
      StackMap locals:
      StackMap stack:
            aload 4 /* convertedChars */
            iload 9 /* i */
            iload 9 /* i */
            sipush 161
            isub
            ldc 65377
            iadd
            i2c
            castore
        69: .line 363
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        70: iload 9 /* i */
            sipush 223
            if_icmple 68
        end local 9 // int i
        71: .line 376
      StackMap locals: int int int java.lang.String char[] byte[] char[] int
      StackMap stack:
            aload 6 /* outputChars */
            iconst_0
            aload 4 /* convertedChars */
            iload 1 /* dBegin */
        72: .line 377
            aload 6 /* outputChars */
            arraylength
        73: .line 376
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        74: .line 383
            ldc 65536
            newarray 5
            astore 9 /* invertedChars */
        start local 9 // char[] invertedChars
        75: .line 384
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        76: goto 80
        77: .line 385
      StackMap locals: int int int java.lang.String char[] byte[] char[] int top char[] int
      StackMap stack:
            aload 4 /* convertedChars */
            iload 10 /* i */
            caload
            ldc 65533
            if_icmpeq 79
        78: .line 386
            aload 9 /* invertedChars */
            aload 4 /* convertedChars */
            iload 10 /* i */
            caload
            iload 10 /* i */
            i2c
            castore
        79: .line 384
      StackMap locals:
      StackMap stack:
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        80: iload 10 /* i */
            ldc 65536
            if_icmplt 77
        end local 10 // int i
        81: .line 389
            aload 9 /* invertedChars */
        82: areturn
        end local 9 // char[] invertedChars
        end local 7 // int j
        end local 6 // char[] outputChars
        end local 5 // byte[] inputBytes
        end local 4 // char[] convertedChars
        83: .line 391
      StackMap locals: int int int java.lang.String
      StackMap stack: java.lang.Exception
            astore 4 /* e */
        start local 4 // java.lang.Exception e
        84: .line 392
            aload 4 /* e */
            invokevirtual java.lang.Exception.printStackTrace:()V
        end local 4 // java.lang.Exception e
        85: .line 394
            aconst_null
            areturn
        end local 3 // java.lang.String encoding
        end local 2 // int dEnd
        end local 1 // int dBegin
        end local 0 // short encodingID
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   86     0      encodingID  S
            1   86     1          dBegin  I
            2   86     2            dEnd  I
            6    7     3        encoding  Ljava/lang/String;
           10   11     3        encoding  Ljava/lang/String;
           14   15     3        encoding  Ljava/lang/String;
           18   19     3        encoding  Ljava/lang/String;
           22   23     3        encoding  Ljava/lang/String;
           24   86     3        encoding  Ljava/lang/String;
           25   83     4  convertedChars  [C
           26   30     5               i  I
           31   83     5      inputBytes  [B
           32   83     6     outputChars  [C
           33   83     7               j  I
           37   44     8       firstByte  I
           35   45     9               i  I
           47   52     9               i  I
           61   65     9               i  I
           67   71     9               i  I
           75   83     9   invertedChars  [C
           76   81    10               i  I
           84   85     4               e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          24    82      83  Class java.lang.Exception
    MethodParameters:
            Name  Flags
      encodingID  

  static char[] getConverterMap(short);
    descriptor: (S)[C
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // short encodingID
         0: .line 403
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            aaload
            ifnonnull 2
         1: .line 404
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            iload 0 /* encodingID */
            invokestatic sun.font.CMap.getConverter:(S)[C
            aastore
         2: .line 406
      StackMap locals:
      StackMap stack:
            getstatic sun.font.CMap.converterMaps:[[C
            iload 0 /* encodingID */
            aaload
            areturn
        end local 0 // short encodingID
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  encodingID  S
    MethodParameters:
            Name  Flags
      encodingID  

  static sun.font.CMap createCMap(java.nio.ByteBuffer, int, char[]);
    descriptor: (Ljava/nio/ByteBuffer;I[C)Lsun/font/CMap;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // java.nio.ByteBuffer buffer
        start local 1 // int offset
        start local 2 // char[] xlat
         0: .line 414
            aload 0 /* buffer */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            istore 3 /* subtableFormat */
        start local 3 // int subtableFormat
         1: .line 416
            iload 3 /* subtableFormat */
            bipush 8
            if_icmpge 4
         2: .line 417
            aload 0 /* buffer */
            iload 1 /* offset */
            iconst_2
            iadd
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            i2l
            lstore 4 /* subtableLength */
        start local 4 // long subtableLength
         3: .line 418
            goto 5
        end local 4 // long subtableLength
         4: .line 419
      StackMap locals: int
      StackMap stack:
            aload 0 /* buffer */
            iload 1 /* offset */
            iconst_4
            iadd
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            ldc 2147483647
            iand
            i2l
            lstore 4 /* subtableLength */
        start local 4 // long subtableLength
         5: .line 421
      StackMap locals: long
      StackMap stack:
            iload 1 /* offset */
            i2l
            lload 4 /* subtableLength */
            ladd
            aload 0 /* buffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            i2l
            lcmp
            ifle 8
         6: .line 422
            invokestatic sun.font.FontUtilities.isLogging:()Z
            ifeq 8
         7: .line 423
            invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
            ldc "Cmap subtable overflows buffer."
            invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
         8: .line 426
      StackMap locals:
      StackMap stack:
            iload 3 /* subtableFormat */
            tableswitch { // 0 - 12
                    0: 9
                    1: 16
                    2: 10
                    3: 16
                    4: 11
                    5: 16
                    6: 12
                    7: 16
                    8: 13
                    9: 16
                   10: 14
                   11: 16
                   12: 15
              default: 16
          }
         9: .line 427
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat0
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            invokespecial sun.font.CMap$CMapFormat0.<init>:(Ljava/nio/ByteBuffer;I)V
            areturn
        10: .line 428
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat2
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat2.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        11: .line 429
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat4
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat4.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        12: .line 430
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat6
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat6.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        13: .line 431
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat8
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat8.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        14: .line 432
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat10
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat10.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        15: .line 433
      StackMap locals:
      StackMap stack:
            new sun.font.CMap$CMapFormat12
            dup
            aload 0 /* buffer */
            iload 1 /* offset */
            aload 2 /* xlat */
            invokespecial sun.font.CMap$CMapFormat12.<init>:(Ljava/nio/ByteBuffer;I[C)V
            areturn
        16: .line 434
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Cmap format unimplemented: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        17: .line 435
            aload 0 /* buffer */
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 434
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // long subtableLength
        end local 3 // int subtableFormat
        end local 2 // char[] xlat
        end local 1 // int offset
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   19     0          buffer  Ljava/nio/ByteBuffer;
            0   19     1          offset  I
            0   19     2            xlat  [C
            1   19     3  subtableFormat  I
            3    4     4  subtableLength  J
            5   19     4  subtableLength  J
    MethodParameters:
        Name  Flags
      buffer  
      offset  
      xlat    

  private void createUVS(java.nio.ByteBuffer, int);
    descriptor: (Ljava/nio/ByteBuffer;I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.font.CMap this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // int offset
         0: .line 440
            aload 1 /* buffer */
            iload 2 /* offset */
            invokevirtual java.nio.ByteBuffer.getChar:(I)C
            istore 3 /* subtableFormat */
        start local 3 // int subtableFormat
         1: .line 441
            iload 3 /* subtableFormat */
            bipush 14
            if_icmpne 11
         2: .line 442
            aload 1 /* buffer */
            iload 2 /* offset */
            iconst_2
            iadd
            invokevirtual java.nio.ByteBuffer.getInt:(I)I
            ldc 2147483647
            iand
            i2l
            lstore 4 /* subtableLength */
        start local 4 // long subtableLength
         3: .line 443
            iload 2 /* offset */
            i2l
            lload 4 /* subtableLength */
            ladd
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            i2l
            lcmp
            ifle 7
         4: .line 444
            invokestatic sun.font.FontUtilities.isLogging:()Z
            ifeq 7
         5: .line 445
            invokestatic sun.font.FontUtilities.getLogger:()Lsun/util/logging/PlatformLogger;
         6: .line 446
            ldc "Cmap UVS subtable overflows buffer."
            invokevirtual sun.util.logging.PlatformLogger.warning:(Ljava/lang/String;)V
         7: .line 450
      StackMap locals: int long
      StackMap stack:
            aload 0 /* this */
            new sun.font.CMap$UVS
            dup
            aload 1 /* buffer */
            iload 2 /* offset */
            invokespecial sun.font.CMap$UVS.<init>:(Ljava/nio/ByteBuffer;I)V
            putfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
         8: .line 451
            goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 6 /* t */
        start local 6 // java.lang.Throwable t
        10: .line 452
            aload 6 /* t */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        end local 6 // java.lang.Throwable t
        end local 4 // long subtableLength
        11: .line 455
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int subtableFormat
        end local 2 // int offset
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lsun/font/CMap;
            0   12     1          buffer  Ljava/nio/ByteBuffer;
            0   12     2          offset  I
            1   12     3  subtableFormat  I
            3   11     4  subtableLength  J
           10   11     6               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           7     8       9  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      buffer  
      offset  

  abstract char getGlyph(int);
    descriptor: (I)C
    flags: (0x0400) ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      charCode  

  final int getControlCodeGlyph(int, boolean);
    descriptor: (IZ)I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.font.CMap this
        start local 1 // int charCode
        start local 2 // boolean noSurrogates
         0: .line 1092
            iload 1 /* charCode */
            bipush 16
            if_icmpge 4
         1: .line 1093
            iload 1 /* charCode */
            tableswitch { // 9 - 13
                    9: 2
                   10: 2
                   11: 3
                   12: 3
                   13: 2
              default: 3
          }
         2: .line 1096
      StackMap locals:
      StackMap stack:
            ldc 65535
            ireturn
         3: .line 1098
      StackMap locals:
      StackMap stack:
            goto 6
      StackMap locals:
      StackMap stack:
         4: iload 2 /* noSurrogates */
            ifeq 6
            iload 1 /* charCode */
            ldc 65535
            if_icmplt 6
         5: .line 1099
            iconst_0
            ireturn
         6: .line 1101
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // boolean noSurrogates
        end local 1 // int charCode
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Lsun/font/CMap;
            0    7     1      charCode  I
            0    7     2  noSurrogates  Z
    MethodParameters:
              Name  Flags
      charCode      
      noSurrogates  

  final char getFormatCharGlyph(int);
    descriptor: (I)C
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.font.CMap this
        start local 1 // int charCode
         0: .line 1105
            iload 1 /* charCode */
            sipush 8204
            if_icmplt 5
         1: .line 1106
            iload 1 /* charCode */
            sipush 8207
            if_icmple 4
         2: .line 1107
            iload 1 /* charCode */
            sipush 8232
            if_icmplt 3
            iload 1 /* charCode */
            sipush 8238
            if_icmple 4
         3: .line 1108
      StackMap locals:
      StackMap stack:
            iload 1 /* charCode */
            sipush 8298
            if_icmplt 5
            iload 1 /* charCode */
            sipush 8303
            if_icmpgt 5
         4: .line 1109
      StackMap locals:
      StackMap stack:
            ldc 65535
            ireturn
         5: .line 1112
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int charCode
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lsun/font/CMap;
            0    6     1  charCode  I
    MethodParameters:
          Name  Flags
      charCode  

  char getVariationGlyph(int, int);
    descriptor: (II)C
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.font.CMap this
        start local 1 // int charCode
        start local 2 // int variationSelector
         0: .line 1195
            iconst_0
            istore 3 /* glyph */
        start local 3 // char glyph
         1: .line 1196
            aload 0 /* this */
            getfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
            ifnonnull 4
         2: .line 1197
            aload 0 /* this */
            iload 1 /* charCode */
            invokevirtual sun.font.CMap.getGlyph:(I)C
            istore 3 /* glyph */
         3: .line 1198
            goto 9
         4: .line 1199
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.CMap.uvs:Lsun/font/CMap$UVS;
            iload 1 /* charCode */
            iload 2 /* variationSelector */
            invokevirtual sun.font.CMap$UVS.getGlyph:(II)I
            istore 4 /* result */
        start local 4 // int result
         5: .line 1200
            iload 4 /* result */
            ifle 8
         6: .line 1201
            iload 4 /* result */
            ldc 65535
            iand
            i2c
            istore 3 /* glyph */
         7: .line 1202
            goto 9
         8: .line 1203
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* charCode */
            invokevirtual sun.font.CMap.getGlyph:(I)C
            istore 3 /* glyph */
        end local 4 // int result
         9: .line 1206
      StackMap locals:
      StackMap stack:
            iload 3 /* glyph */
            ireturn
        end local 3 // char glyph
        end local 2 // int variationSelector
        end local 1 // int charCode
        end local 0 // sun.font.CMap this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   10     0               this  Lsun/font/CMap;
            0   10     1           charCode  I
            0   10     2  variationSelector  I
            1   10     3              glyph  C
            5    9     4             result  I
    MethodParameters:
                   Name  Flags
      charCode           
      variationSelector  
}
SourceFile: "CMap.java"
NestMembers:
  sun.font.CMap$CMapFormat0  sun.font.CMap$CMapFormat10  sun.font.CMap$CMapFormat12  sun.font.CMap$CMapFormat2  sun.font.CMap$CMapFormat4  sun.font.CMap$CMapFormat6  sun.font.CMap$CMapFormat8  sun.font.CMap$NullCMapClass  sun.font.CMap$UVS
InnerClasses:
  CMapFormat0 = sun.font.CMap$CMapFormat0 of sun.font.CMap
  CMapFormat10 = sun.font.CMap$CMapFormat10 of sun.font.CMap
  CMapFormat12 = sun.font.CMap$CMapFormat12 of sun.font.CMap
  CMapFormat2 = sun.font.CMap$CMapFormat2 of sun.font.CMap
  CMapFormat4 = sun.font.CMap$CMapFormat4 of sun.font.CMap
  CMapFormat6 = sun.font.CMap$CMapFormat6 of sun.font.CMap
  CMapFormat8 = sun.font.CMap$CMapFormat8 of sun.font.CMap
  NullCMapClass = sun.font.CMap$NullCMapClass of sun.font.CMap
  UVS = sun.font.CMap$UVS of sun.font.CMap