final class sun.text.bidi.BidiWriter
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.text.bidi.BidiWriter
  super_class: java.lang.Object
{
  static final char LRM_CHAR;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8206

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

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

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.text.bidi.BidiWriter this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.text.bidi.BidiWriter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/text/bidi/BidiWriter;

  private static boolean IsCombining(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int type
         0: .line 50
            iconst_1
            iload 0 /* type */
            ishl
         1: .line 51
            sipush 448
         2: .line 50
            iand
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  type  I
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.String doWriteForward(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // java.lang.String src
        start local 1 // int options
         0: .line 67
            iload 1 /* options */
            bipush 10
            iand
            lookupswitch { // 3
                    0: 1
                    2: 2
                    8: 10
              default: 18
          }
         1: .line 70
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            areturn
         2: .line 73
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
         3: .line 76
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: .line 80
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
         5: .line 81
            iload 3 /* i */
            iload 4 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            iadd
            istore 3 /* i */
         6: .line 82
            aload 2 /* dest */
            iload 4 /* c */
            invokestatic sun.text.normalizer.UCharacter.getMirror:(I)I
            invokestatic sun.text.normalizer.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
         7: .line 83
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
         8: .line 79
            if_icmplt 4
         9: .line 84
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // int c
        end local 3 // int i
        end local 2 // java.lang.StringBuffer dest
        10: .line 87
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuilder dest
        11: .line 90
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        12: .line 93
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            iinc 3 /* i */ 1
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* c */
        start local 4 // char c
        13: .line 94
            iload 4 /* c */
            invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
            ifne 15
        14: .line 95
            aload 2 /* dest */
            iload 4 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        15: .line 97
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
        16: .line 92
            if_icmplt 12
        17: .line 98
            aload 2 /* dest */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // char c
        end local 3 // int i
        end local 2 // java.lang.StringBuilder dest
        18: .line 101
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
        19: .line 104
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        20: .line 107
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* i */
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
        21: .line 108
            iload 3 /* i */
            iload 4 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            iadd
            istore 3 /* i */
        22: .line 109
            iload 4 /* c */
            invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
            ifne 24
        23: .line 110
            aload 2 /* dest */
            iload 4 /* c */
            invokestatic sun.text.normalizer.UCharacter.getMirror:(I)I
            invokestatic sun.text.normalizer.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
        24: .line 112
      StackMap locals: int
      StackMap stack:
            iload 3 /* i */
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
        25: .line 106
            if_icmplt 20
        26: .line 113
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 4 // int c
        end local 3 // int i
        end local 2 // java.lang.StringBuffer dest
        end local 1 // int options
        end local 0 // java.lang.String src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   27     0      src  Ljava/lang/String;
            0   27     1  options  I
            3   10     2     dest  Ljava/lang/StringBuffer;
            4   10     3        i  I
            5   10     4        c  I
           11   18     2     dest  Ljava/lang/StringBuilder;
           12   18     3        i  I
           13   18     4        c  C
           19   27     2     dest  Ljava/lang/StringBuffer;
           20   27     3        i  I
           21   27     4        c  I
    MethodParameters:
         Name  Flags
      src      
      options  

  private static java.lang.String doWriteForward(char[], int, int, int);
    descriptor: ([CIII)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int options
         0: .line 120
            new java.lang.String
            dup
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            iload 1 /* start */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            iload 3 /* options */
            invokestatic sun.text.bidi.BidiWriter.doWriteForward:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // int options
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     text  [C
            0    1     1    start  I
            0    1     2    limit  I
            0    1     3  options  I
    MethodParameters:
         Name  Flags
      text     
      start    
      limit    
      options  

  static java.lang.String writeReverse(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // java.lang.String src
        start local 1 // int options
         0: .line 142
            new java.lang.StringBuffer
            dup
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 2 /* dest */
        start local 2 // java.lang.StringBuffer dest
         1: .line 145
            iload 1 /* options */
         2: .line 146
            bipush 11
         3: .line 145
            iand
            tableswitch { // 0 - 1
                    0: 4
                    1: 13
              default: 22
          }
         4: .line 160
      StackMap locals: java.lang.StringBuffer
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
         5: .line 166
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 4 /* i */
        start local 4 // int i
         6: .line 169
            iload 3 /* srcLength */
            aload 0 /* src */
         7: .line 170
            iload 3 /* srcLength */
            iconst_1
            isub
         8: .line 169
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
         9: .line 173
            aload 2 /* dest */
            aload 0 /* src */
            iload 3 /* srcLength */
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 4 // int i
        10: .line 174
            iload 3 /* srcLength */
        11: .line 163
            ifgt 5
        12: .line 175
            goto 42
        end local 3 // int srcLength
        13: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
        14: .line 192
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 5 /* i */
        start local 5 // int i
        15: .line 197
      StackMap locals: java.lang.String int java.lang.StringBuffer int top int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            istore 4 /* c */
        start local 4 // int c
        16: .line 198
            iload 3 /* srcLength */
            iload 4 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        17: .line 199
            iload 3 /* srcLength */
            ifle 18
            iload 4 /* c */
            invokestatic sun.text.normalizer.UCharacter.getType:(I)I
            invokestatic sun.text.bidi.BidiWriter.IsCombining:(I)Z
            ifne 15
        18: .line 202
      StackMap locals: java.lang.String int java.lang.StringBuffer int int int
      StackMap stack:
            aload 2 /* dest */
            aload 0 /* src */
            iload 3 /* srcLength */
            iload 5 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 5 // int i
        end local 4 // int c
        19: .line 203
            iload 3 /* srcLength */
        20: .line 188
            ifgt 14
        21: .line 204
            goto 42
        end local 3 // int srcLength
        22: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* src */
            invokevirtual java.lang.String.length:()I
            istore 3 /* srcLength */
        start local 3 // int srcLength
        23: .line 220
      StackMap locals: int
      StackMap stack:
            iload 3 /* srcLength */
            istore 4 /* i */
        start local 4 // int i
        24: .line 223
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            istore 5 /* c */
        start local 5 // int c
        25: .line 224
            iload 3 /* srcLength */
            iload 5 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        26: .line 225
            iload 1 /* options */
            iconst_1
            iand
            ifeq 31
        27: .line 227
            goto 30
        28: .line 228
      StackMap locals: int int
      StackMap stack:
            aload 0 /* src */
            iload 3 /* srcLength */
            iconst_1
            isub
            invokestatic sun.text.normalizer.UTF16.charAt:(Ljava/lang/String;I)I
            istore 5 /* c */
        29: .line 229
            iload 3 /* srcLength */
            iload 5 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            isub
            istore 3 /* srcLength */
        30: .line 227
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
            ifle 31
            iload 5 /* c */
            invokestatic sun.text.normalizer.UCharacter.getType:(I)I
            invokestatic sun.text.bidi.BidiWriter.IsCombining:(I)Z
            ifne 28
        31: .line 233
      StackMap locals:
      StackMap stack:
            iload 1 /* options */
            bipush 8
            iand
            ifeq 34
        32: .line 234
            iload 5 /* c */
            invokestatic sun.text.bidi.BidiBase.IsBidiControlChar:(I)Z
            ifeq 34
        33: .line 236
            goto 40
        34: .line 240
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
            istore 6 /* j */
        start local 6 // int j
        35: .line 241
            iload 1 /* options */
            iconst_2
            iand
            ifeq 39
        36: .line 243
            iload 5 /* c */
            invokestatic sun.text.normalizer.UCharacter.getMirror:(I)I
            istore 5 /* c */
        37: .line 244
            aload 2 /* dest */
            iload 5 /* c */
            invokestatic sun.text.normalizer.UTF16.append:(Ljava/lang/StringBuffer;I)Ljava/lang/StringBuffer;
            pop
        38: .line 245
            iload 6 /* j */
            iload 5 /* c */
            invokestatic sun.text.normalizer.UTF16.getCharCount:(I)I
            iadd
            istore 6 /* j */
        39: .line 247
      StackMap locals: int
      StackMap stack:
            aload 2 /* dest */
            aload 0 /* src */
            iload 6 /* j */
            iload 4 /* i */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            pop
        end local 6 // int j
        end local 5 // int c
        end local 4 // int i
        40: .line 248
      StackMap locals:
      StackMap stack:
            iload 3 /* srcLength */
        41: .line 217
            ifgt 23
        end local 3 // int srcLength
        42: .line 252
      StackMap locals:
      StackMap stack:
            aload 2 /* dest */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuffer dest
        end local 1 // int options
        end local 0 // java.lang.String src
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   43     0        src  Ljava/lang/String;
            0   43     1    options  I
            1   43     2       dest  Ljava/lang/StringBuffer;
            5   13     3  srcLength  I
           14   22     3  srcLength  I
           23   42     3  srcLength  I
            6   10     4          i  I
           16   19     4          c  I
           15   19     5          i  I
           24   40     4          i  I
           25   40     5          c  I
           35   40     6          j  I
    MethodParameters:
         Name  Flags
      src      
      options  

  static java.lang.String doWriteReverse(char[], int, int, int);
    descriptor: ([CIII)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
        start local 3 // int options
         0: .line 256
            new java.lang.String
            dup
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            iload 1 /* start */
            isub
            invokespecial java.lang.String.<init>:([CII)V
            iload 3 /* options */
            invokestatic sun.text.bidi.BidiWriter.writeReverse:(Ljava/lang/String;I)Ljava/lang/String;
            areturn
        end local 3 // int options
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     text  [C
            0    1     1    start  I
            0    1     2    limit  I
            0    1     3  options  I
    MethodParameters:
         Name  Flags
      text     
      start    
      limit    
      options  

  static java.lang.String writeReordered(sun.text.bidi.BidiBase, int);
    descriptor: (Lsun/text/bidi/BidiBase;I)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // sun.text.bidi.BidiBase bidi
        start local 1 // int options
         0: .line 262
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.text:[C
            astore 5 /* text */
        start local 5 // char[] text
         1: .line 263
            aload 0 /* bidi */
            invokevirtual sun.text.bidi.BidiBase.countRuns:()I
            istore 3 /* runCount */
        start local 3 // int runCount
         2: .line 269
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingOptions:I
            iconst_1
            iand
            ifeq 5
         3: .line 270
            iload 1 /* options */
            iconst_4
            ior
            istore 1 /* options */
         4: .line 271
            iload 1 /* options */
            bipush -9
            iand
            istore 1 /* options */
         5: .line 277
      StackMap locals: sun.text.bidi.BidiBase int top int top char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingOptions:I
            iconst_2
            iand
            ifeq 8
         6: .line 278
            iload 1 /* options */
            bipush 8
            ior
            istore 1 /* options */
         7: .line 279
            iload 1 /* options */
            bipush -5
            iand
            istore 1 /* options */
         8: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingMode:I
            iconst_4
            if_icmpeq 13
         9: .line 286
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingMode:I
            iconst_5
            if_icmpeq 13
        10: .line 287
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingMode:I
            bipush 6
            if_icmpeq 13
        11: .line 288
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.reorderingMode:I
            iconst_3
            if_icmpeq 13
        12: .line 289
            iload 1 /* options */
            bipush -5
            iand
            istore 1 /* options */
        13: .line 291
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            iload 1 /* options */
            iconst_4
            iand
            ifeq 15
        14: .line 292
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.length:I
            iconst_2
            imul
            goto 16
      StackMap locals: sun.text.bidi.BidiBase int top int top char[]
      StackMap stack: new 13 new 13
        15: aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.length:I
        16: .line 291
      StackMap locals: sun.text.bidi.BidiBase int top int top char[]
      StackMap stack: new 13 new 13 int
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 4 /* dest */
        start local 4 // java.lang.StringBuilder dest
        17: .line 302
            iload 1 /* options */
            bipush 16
            iand
            ifne 105
        18: .line 304
            iload 1 /* options */
            iconst_4
            iand
            ifne 34
        19: .line 306
            iconst_0
            istore 2 /* run */
        start local 2 // int run
        20: goto 32
        21: .line 307
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual sun.text.bidi.BidiBase.getVisualRun:(I)Lsun/text/bidi/BidiRun;
            astore 6 /* bidiRun */
        start local 6 // sun.text.bidi.BidiRun bidiRun
        22: .line 308
            aload 6 /* bidiRun */
            invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
            ifeq 28
        23: .line 309
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
        24: .line 310
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
        25: .line 311
            iload 1 /* options */
            bipush -3
            iand
        26: .line 309
            invokestatic sun.text.bidi.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        27: .line 312
            goto 31
        28: .line 313
      StackMap locals: sun.text.bidi.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
        29: .line 314
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iload 1 /* options */
        30: .line 313
            invokestatic sun.text.bidi.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // sun.text.bidi.BidiRun bidiRun
        31: .line 306
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ 1
      StackMap locals:
      StackMap stack:
        32: iload 2 /* run */
            iload 3 /* runCount */
            if_icmplt 21
        33: .line 317
            goto 141
        end local 2 // int run
        34: .line 319
      StackMap locals: sun.text.bidi.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.dirProps:[B
            astore 6 /* dirProps */
        start local 6 // byte[] dirProps
        35: .line 323
            iconst_0
            istore 2 /* run */
        start local 2 // int run
        36: goto 103
        37: .line 324
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual sun.text.bidi.BidiBase.getVisualRun:(I)Lsun/text/bidi/BidiRun;
            astore 9 /* bidiRun */
        start local 9 // sun.text.bidi.BidiRun bidiRun
        38: .line 325
            iconst_0
            istore 8 /* markFlag */
        start local 8 // int markFlag
        39: .line 327
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.runs:[Lsun/text/bidi/BidiRun;
            iload 2 /* run */
            aaload
            getfield sun.text.bidi.BidiRun.insertRemove:I
            istore 8 /* markFlag */
        40: .line 328
            iload 8 /* markFlag */
            ifge 42
        41: .line 329
            iconst_0
            istore 8 /* markFlag */
        42: .line 331
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[] top int sun.text.bidi.BidiRun
      StackMap stack:
            aload 9 /* bidiRun */
            invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
            ifeq 72
        43: .line 332
            aload 0 /* bidi */
            invokevirtual sun.text.bidi.BidiBase.isInverse:()Z
            ifeq 46
        44: .line 333
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            baload
            ifeq 46
        45: .line 334
            iload 8 /* markFlag */
            iconst_1
            ior
            istore 8 /* markFlag */
        46: .line 336
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_1
            iand
            ifeq 49
        47: .line 337
            sipush 8206
            istore 7 /* uc */
        start local 7 // char uc
        48: .line 338
            goto 53
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
        49: iload 8 /* markFlag */
            iconst_4
            iand
            ifeq 52
        50: .line 339
            sipush 8207
            istore 7 /* uc */
        start local 7 // char uc
        51: .line 340
            goto 53
        end local 7 // char uc
        52: .line 341
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        start local 7 // char uc
        53: .line 343
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[] int int sun.text.bidi.BidiRun
      StackMap stack:
            iload 7 /* uc */
            ifeq 55
        54: .line 344
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        55: .line 346
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
        56: .line 347
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
        57: .line 348
            iload 1 /* options */
            bipush -3
            iand
        58: .line 346
            invokestatic sun.text.bidi.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        59: .line 350
            aload 0 /* bidi */
            invokevirtual sun.text.bidi.BidiBase.isInverse:()Z
            ifeq 62
        60: .line 351
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iconst_1
            isub
            baload
            ifeq 62
        61: .line 352
            iload 8 /* markFlag */
            iconst_2
            ior
            istore 8 /* markFlag */
        62: .line 354
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_2
            iand
            ifeq 65
        63: .line 355
            sipush 8206
            istore 7 /* uc */
        64: .line 356
            goto 69
      StackMap locals:
      StackMap stack:
        65: iload 8 /* markFlag */
            bipush 8
            iand
            ifeq 68
        66: .line 357
            sipush 8207
            istore 7 /* uc */
        67: .line 358
            goto 69
        68: .line 359
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        69: .line 361
      StackMap locals:
      StackMap stack:
            iload 7 /* uc */
            ifeq 102
        70: .line 362
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        71: .line 364
            goto 102
        end local 7 // char uc
        72: .line 365
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[] top int sun.text.bidi.BidiRun
      StackMap stack:
            aload 0 /* bidi */
            invokevirtual sun.text.bidi.BidiBase.isInverse:()Z
            ifeq 78
        73: .line 366
            aload 0 /* bidi */
            sipush 8194
        74: .line 367
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iconst_1
            isub
        75: .line 366
            invokevirtual sun.text.bidi.BidiBase.testDirPropFlagAt:(II)Z
        76: .line 367
            ifne 78
        77: .line 368
            iload 8 /* markFlag */
            iconst_4
            ior
            istore 8 /* markFlag */
        78: .line 370
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_1
            iand
            ifeq 81
        79: .line 371
            sipush 8206
            istore 7 /* uc */
        start local 7 // char uc
        80: .line 372
            goto 85
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
        81: iload 8 /* markFlag */
            iconst_4
            iand
            ifeq 84
        82: .line 373
            sipush 8207
            istore 7 /* uc */
        start local 7 // char uc
        83: .line 374
            goto 85
        end local 7 // char uc
        84: .line 375
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
        start local 7 // char uc
        85: .line 377
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[] int int sun.text.bidi.BidiRun
      StackMap stack:
            iload 7 /* uc */
            ifeq 87
        86: .line 378
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        87: .line 380
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
        88: .line 381
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iload 1 /* options */
        89: .line 380
            invokestatic sun.text.bidi.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        90: .line 383
            aload 0 /* bidi */
            invokevirtual sun.text.bidi.BidiBase.isInverse:()Z
            ifeq 93
        91: .line 384
            sipush 8194
            aload 6 /* dirProps */
            aload 9 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            baload
            invokestatic sun.text.bidi.BidiBase.DirPropFlag:(B)I
            iand
            ifne 93
        92: .line 385
            iload 8 /* markFlag */
            bipush 8
            ior
            istore 8 /* markFlag */
        93: .line 387
      StackMap locals:
      StackMap stack:
            iload 8 /* markFlag */
            iconst_2
            iand
            ifeq 96
        94: .line 388
            sipush 8206
            istore 7 /* uc */
        95: .line 389
            goto 100
      StackMap locals:
      StackMap stack:
        96: iload 8 /* markFlag */
            bipush 8
            iand
            ifeq 99
        97: .line 390
            sipush 8207
            istore 7 /* uc */
        98: .line 391
            goto 100
        99: .line 392
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* uc */
       100: .line 394
      StackMap locals:
      StackMap stack:
            iload 7 /* uc */
            ifeq 102
       101: .line 395
            aload 4 /* dest */
            iload 7 /* uc */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 9 // sun.text.bidi.BidiRun bidiRun
       102: .line 323
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ 1
        end local 8 // int markFlag
        end local 7 // char uc
      StackMap locals:
      StackMap stack:
       103: iload 2 /* run */
            iload 3 /* runCount */
            if_icmplt 37
        end local 6 // byte[] dirProps
       104: .line 400
            goto 141
        end local 2 // int run
       105: .line 402
      StackMap locals: sun.text.bidi.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            iload 1 /* options */
            iconst_4
            iand
            ifne 120
       106: .line 404
            iload 3 /* runCount */
            istore 2 /* run */
        start local 2 // int run
       107: goto 118
       108: .line 405
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual sun.text.bidi.BidiBase.getVisualRun:(I)Lsun/text/bidi/BidiRun;
            astore 6 /* bidiRun */
        start local 6 // sun.text.bidi.BidiRun bidiRun
       109: .line 406
            aload 6 /* bidiRun */
            invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
            ifeq 115
       110: .line 407
            aload 4 /* dest */
            aload 5 /* text */
       111: .line 408
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
       112: .line 409
            iload 1 /* options */
            bipush -3
            iand
       113: .line 407
            invokestatic sun.text.bidi.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       114: .line 410
            goto 118
       115: .line 411
      StackMap locals: sun.text.bidi.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
       116: .line 412
            aload 6 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iload 1 /* options */
       117: .line 411
            invokestatic sun.text.bidi.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // sun.text.bidi.BidiRun bidiRun
       118: .line 404
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ -1
            iload 2 /* run */
            ifge 108
       119: .line 415
            goto 141
        end local 2 // int run
       120: .line 418
      StackMap locals: sun.text.bidi.BidiBase int top int java.lang.StringBuilder char[]
      StackMap stack:
            aload 0 /* bidi */
            getfield sun.text.bidi.BidiBase.dirProps:[B
            astore 6 /* dirProps */
        start local 6 // byte[] dirProps
       121: .line 420
            iload 3 /* runCount */
            istore 2 /* run */
        start local 2 // int run
       122: goto 140
       123: .line 422
      StackMap locals: sun.text.bidi.BidiBase int int int java.lang.StringBuilder char[] byte[]
      StackMap stack:
            aload 0 /* bidi */
            iload 2 /* run */
            invokevirtual sun.text.bidi.BidiBase.getVisualRun:(I)Lsun/text/bidi/BidiRun;
            astore 7 /* bidiRun */
        start local 7 // sun.text.bidi.BidiRun bidiRun
       124: .line 423
            aload 7 /* bidiRun */
            invokevirtual sun.text.bidi.BidiRun.isEvenRun:()Z
            ifeq 133
       125: .line 424
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iconst_1
            isub
            baload
            ifeq 127
       126: .line 425
            aload 4 /* dest */
            sipush 8206
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       127: .line 428
      StackMap locals: sun.text.bidi.BidiRun
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
       128: .line 429
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iload 1 /* options */
            bipush -3
            iand
       129: .line 428
            invokestatic sun.text.bidi.BidiWriter.doWriteReverse:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       130: .line 431
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            baload
            ifeq 140
       131: .line 432
            aload 4 /* dest */
            sipush 8206
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       132: .line 434
            goto 140
       133: .line 435
      StackMap locals:
      StackMap stack:
            sipush 8194
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
            baload
            invokestatic sun.text.bidi.BidiBase.DirPropFlag:(B)I
            iand
            ifne 135
       134: .line 436
            aload 4 /* dest */
            sipush 8207
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
       135: .line 439
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            aload 5 /* text */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.start:I
       136: .line 440
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iload 1 /* options */
       137: .line 439
            invokestatic sun.text.bidi.BidiWriter.doWriteForward:([CIII)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
       138: .line 442
            sipush 8194
            aload 6 /* dirProps */
            aload 7 /* bidiRun */
            getfield sun.text.bidi.BidiRun.limit:I
            iconst_1
            isub
            baload
            invokestatic sun.text.bidi.BidiBase.DirPropFlag:(B)I
            iand
            ifne 140
       139: .line 443
            aload 4 /* dest */
            sipush 8207
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 7 // sun.text.bidi.BidiRun bidiRun
       140: .line 420
      StackMap locals:
      StackMap stack:
            iinc 2 /* run */ -1
            iload 2 /* run */
            ifge 123
        end local 6 // byte[] dirProps
       141: .line 450
      StackMap locals:
      StackMap stack:
            aload 4 /* dest */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 5 // char[] text
        end local 4 // java.lang.StringBuilder dest
        end local 3 // int runCount
        end local 2 // int run
        end local 1 // int options
        end local 0 // sun.text.bidi.BidiBase bidi
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0  142     0      bidi  Lsun/text/bidi/BidiBase;
            0  142     1   options  I
           20   34     2       run  I
           36  105     2       run  I
          107  120     2       run  I
          122  142     2       run  I
            2  142     3  runCount  I
           17  142     4      dest  Ljava/lang/StringBuilder;
            1  142     5      text  [C
           22   31     6   bidiRun  Lsun/text/bidi/BidiRun;
           35  104     6  dirProps  [B
           48   49     7        uc  C
           51   52     7        uc  C
           53   72     7        uc  C
           80   81     7        uc  C
           83   84     7        uc  C
           85  103     7        uc  C
           39  103     8  markFlag  I
           38  102     9   bidiRun  Lsun/text/bidi/BidiRun;
          109  118     6   bidiRun  Lsun/text/bidi/BidiRun;
          121  141     6  dirProps  [B
          124  140     7   bidiRun  Lsun/text/bidi/BidiRun;
    MethodParameters:
         Name  Flags
      bidi     
      options  
}
SourceFile: "BidiWriter.java"