class javax.swing.text.TextLayoutStrategy extends javax.swing.text.FlowView$FlowStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javax.swing.text.TextLayoutStrategy
  super_class: javax.swing.text.FlowView$FlowStrategy
{
  private java.awt.font.LineBreakMeasurer measurer;
    descriptor: Ljava/awt/font/LineBreakMeasurer;
    flags: (0x0002) ACC_PRIVATE

  private javax.swing.text.TextLayoutStrategy$AttributedSegment text;
    descriptor: Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // javax.swing.text.TextLayoutStrategy this
         0: .line 52
            aload 0 /* this */
            invokespecial javax.swing.text.FlowView$FlowStrategy.<init>:()V
         1: .line 53
            aload 0 /* this */
            new javax.swing.text.TextLayoutStrategy$AttributedSegment
            dup
            invokespecial javax.swing.text.TextLayoutStrategy$AttributedSegment.<init>:()V
            putfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
         2: .line 54
            return
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/text/TextLayoutStrategy;

  public void insertUpdate(javax.swing.text.FlowView, javax.swing.event.DocumentEvent, java.awt.Rectangle);
    descriptor: (Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // javax.swing.event.DocumentEvent e
        start local 3 // java.awt.Rectangle alloc
         0: .line 70
            aload 0 /* this */
            aload 1 /* fv */
            invokevirtual javax.swing.text.TextLayoutStrategy.sync:(Ljavax/swing/text/FlowView;)V
         1: .line 71
            aload 0 /* this */
            aload 1 /* fv */
            aload 2 /* e */
            aload 3 /* alloc */
            invokespecial javax.swing.text.FlowView$FlowStrategy.insertUpdate:(Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
         2: .line 72
            return
        end local 3 // java.awt.Rectangle alloc
        end local 2 // javax.swing.event.DocumentEvent e
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/text/TextLayoutStrategy;
            0    3     1     fv  Ljavax/swing/text/FlowView;
            0    3     2      e  Ljavax/swing/event/DocumentEvent;
            0    3     3  alloc  Ljava/awt/Rectangle;
    MethodParameters:
       Name  Flags
      fv     
      e      
      alloc  

  public void removeUpdate(javax.swing.text.FlowView, javax.swing.event.DocumentEvent, java.awt.Rectangle);
    descriptor: (Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // javax.swing.event.DocumentEvent e
        start local 3 // java.awt.Rectangle alloc
         0: .line 83
            aload 0 /* this */
            aload 1 /* fv */
            invokevirtual javax.swing.text.TextLayoutStrategy.sync:(Ljavax/swing/text/FlowView;)V
         1: .line 84
            aload 0 /* this */
            aload 1 /* fv */
            aload 2 /* e */
            aload 3 /* alloc */
            invokespecial javax.swing.text.FlowView$FlowStrategy.removeUpdate:(Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
         2: .line 85
            return
        end local 3 // java.awt.Rectangle alloc
        end local 2 // javax.swing.event.DocumentEvent e
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/text/TextLayoutStrategy;
            0    3     1     fv  Ljavax/swing/text/FlowView;
            0    3     2      e  Ljavax/swing/event/DocumentEvent;
            0    3     3  alloc  Ljava/awt/Rectangle;
    MethodParameters:
       Name  Flags
      fv     
      e      
      alloc  

  public void changedUpdate(javax.swing.text.FlowView, javax.swing.event.DocumentEvent, java.awt.Rectangle);
    descriptor: (Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // javax.swing.event.DocumentEvent e
        start local 3 // java.awt.Rectangle alloc
         0: .line 96
            aload 0 /* this */
            aload 1 /* fv */
            invokevirtual javax.swing.text.TextLayoutStrategy.sync:(Ljavax/swing/text/FlowView;)V
         1: .line 97
            aload 0 /* this */
            aload 1 /* fv */
            aload 2 /* e */
            aload 3 /* alloc */
            invokespecial javax.swing.text.FlowView$FlowStrategy.changedUpdate:(Ljavax/swing/text/FlowView;Ljavax/swing/event/DocumentEvent;Ljava/awt/Rectangle;)V
         2: .line 98
            return
        end local 3 // java.awt.Rectangle alloc
        end local 2 // javax.swing.event.DocumentEvent e
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/text/TextLayoutStrategy;
            0    3     1     fv  Ljavax/swing/text/FlowView;
            0    3     2      e  Ljavax/swing/event/DocumentEvent;
            0    3     3  alloc  Ljava/awt/Rectangle;
    MethodParameters:
       Name  Flags
      fv     
      e      
      alloc  

  public void layout(javax.swing.text.FlowView);
    descriptor: (Ljavax/swing/text/FlowView;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
         0: .line 109
            aload 0 /* this */
            aload 1 /* fv */
            invokespecial javax.swing.text.FlowView$FlowStrategy.layout:(Ljavax/swing/text/FlowView;)V
         1: .line 110
            return
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/swing/text/TextLayoutStrategy;
            0    2     1    fv  Ljavax/swing/text/FlowView;
    MethodParameters:
      Name  Flags
      fv    

  protected int layoutRow(javax.swing.text.FlowView, int, int);
    descriptor: (Ljavax/swing/text/FlowView;II)I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=17, args_size=4
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // int rowIndex
        start local 3 // int p0
         0: .line 126
            aload 0 /* this */
            aload 1 /* fv */
            iload 2 /* rowIndex */
            iload 3 /* p0 */
            invokespecial javax.swing.text.FlowView$FlowStrategy.layoutRow:(Ljavax/swing/text/FlowView;II)I
            istore 4 /* p1 */
        start local 4 // int p1
         1: .line 127
            aload 1 /* fv */
            iload 2 /* rowIndex */
            invokevirtual javax.swing.text.FlowView.getView:(I)Ljavax/swing/text/View;
            astore 5 /* row */
        start local 5 // javax.swing.text.View row
         2: .line 128
            aload 1 /* fv */
            invokevirtual javax.swing.text.FlowView.getDocument:()Ljavax/swing/text/Document;
            astore 6 /* doc */
        start local 6 // javax.swing.text.Document doc
         3: .line 129
            aload 6 /* doc */
            ldc "i18n"
            invokeinterface javax.swing.text.Document.getProperty:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* i18nFlag */
        start local 7 // java.lang.Object i18nFlag
         4: .line 130
            aload 7 /* i18nFlag */
            ifnull 22
            aload 7 /* i18nFlag */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 22
         5: .line 131
            aload 5 /* row */
            invokevirtual javax.swing.text.View.getViewCount:()I
            istore 8 /* n */
        start local 8 // int n
         6: .line 132
            iload 8 /* n */
            iconst_1
            if_icmple 22
         7: .line 133
            aload 1 /* fv */
            invokevirtual javax.swing.text.FlowView.getDocument:()Ljavax/swing/text/Document;
            checkcast javax.swing.text.AbstractDocument
            astore 9 /* d */
        start local 9 // javax.swing.text.AbstractDocument d
         8: .line 134
            aload 9 /* d */
            invokevirtual javax.swing.text.AbstractDocument.getBidiRootElement:()Ljavax/swing/text/Element;
            astore 10 /* bidiRoot */
        start local 10 // javax.swing.text.Element bidiRoot
         9: .line 135
            iload 8 /* n */
            newarray 8
            astore 11 /* levels */
        start local 11 // byte[] levels
        10: .line 136
            iload 8 /* n */
            anewarray javax.swing.text.View
            astore 12 /* reorder */
        start local 12 // javax.swing.text.View[] reorder
        11: .line 138
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        12: goto 19
        13: .line 139
      StackMap locals: javax.swing.text.TextLayoutStrategy javax.swing.text.FlowView int int int javax.swing.text.View javax.swing.text.Document java.lang.Object int javax.swing.text.AbstractDocument javax.swing.text.Element byte[] javax.swing.text.View[] int
      StackMap stack:
            aload 5 /* row */
            iload 13 /* i */
            invokevirtual javax.swing.text.View.getView:(I)Ljavax/swing/text/View;
            astore 14 /* v */
        start local 14 // javax.swing.text.View v
        14: .line 140
            aload 10 /* bidiRoot */
            aload 14 /* v */
            invokevirtual javax.swing.text.View.getStartOffset:()I
            invokeinterface javax.swing.text.Element.getElementIndex:(I)I
            istore 15 /* bidiIndex */
        start local 15 // int bidiIndex
        15: .line 141
            aload 10 /* bidiRoot */
            iload 15 /* bidiIndex */
            invokeinterface javax.swing.text.Element.getElement:(I)Ljavax/swing/text/Element;
            astore 16 /* bidiElem */
        start local 16 // javax.swing.text.Element bidiElem
        16: .line 142
            aload 11 /* levels */
            iload 13 /* i */
            aload 16 /* bidiElem */
            invokeinterface javax.swing.text.Element.getAttributes:()Ljavax/swing/text/AttributeSet;
            invokestatic javax.swing.text.StyleConstants.getBidiLevel:(Ljavax/swing/text/AttributeSet;)I
            i2b
            bastore
        17: .line 143
            aload 12 /* reorder */
            iload 13 /* i */
            aload 14 /* v */
            aastore
        end local 16 // javax.swing.text.Element bidiElem
        end local 15 // int bidiIndex
        end local 14 // javax.swing.text.View v
        18: .line 138
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 13 /* i */
            iload 8 /* n */
            if_icmplt 13
        end local 13 // int i
        20: .line 146
            aload 11 /* levels */
            aload 12 /* reorder */
            invokestatic sun.font.BidiUtils.reorderVisually:([B[Ljava/lang/Object;)V
        21: .line 147
            aload 5 /* row */
            iconst_0
            iload 8 /* n */
            aload 12 /* reorder */
            invokevirtual javax.swing.text.View.replace:(II[Ljavax/swing/text/View;)V
        end local 12 // javax.swing.text.View[] reorder
        end local 11 // byte[] levels
        end local 10 // javax.swing.text.Element bidiRoot
        end local 9 // javax.swing.text.AbstractDocument d
        end local 8 // int n
        22: .line 150
      StackMap locals: javax.swing.text.TextLayoutStrategy javax.swing.text.FlowView int int int javax.swing.text.View javax.swing.text.Document java.lang.Object
      StackMap stack:
            iload 4 /* p1 */
            ireturn
        end local 7 // java.lang.Object i18nFlag
        end local 6 // javax.swing.text.Document doc
        end local 5 // javax.swing.text.View row
        end local 4 // int p1
        end local 3 // int p0
        end local 2 // int rowIndex
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Ljavax/swing/text/TextLayoutStrategy;
            0   23     1         fv  Ljavax/swing/text/FlowView;
            0   23     2   rowIndex  I
            0   23     3         p0  I
            1   23     4         p1  I
            2   23     5        row  Ljavax/swing/text/View;
            3   23     6        doc  Ljavax/swing/text/Document;
            4   23     7   i18nFlag  Ljava/lang/Object;
            6   22     8          n  I
            8   22     9          d  Ljavax/swing/text/AbstractDocument;
            9   22    10   bidiRoot  Ljavax/swing/text/Element;
           10   22    11     levels  [B
           11   22    12    reorder  [Ljavax/swing/text/View;
           12   20    13          i  I
           14   18    14          v  Ljavax/swing/text/View;
           15   18    15  bidiIndex  I
           16   18    16   bidiElem  Ljavax/swing/text/Element;
    MethodParameters:
          Name  Flags
      fv        
      rowIndex  
      p0        

  protected void adjustRow(javax.swing.text.FlowView, int, int, int);
    descriptor: (Ljavax/swing/text/FlowView;III)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // int rowIndex
        start local 3 // int desiredSpan
        start local 4 // int x
         0: .line 165
            return
        end local 4 // int x
        end local 3 // int desiredSpan
        end local 2 // int rowIndex
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Ljavax/swing/text/TextLayoutStrategy;
            0    1     1           fv  Ljavax/swing/text/FlowView;
            0    1     2     rowIndex  I
            0    1     3  desiredSpan  I
            0    1     4            x  I
    MethodParameters:
             Name  Flags
      fv           
      rowIndex     
      desiredSpan  
      x            

  protected javax.swing.text.View createView(javax.swing.text.FlowView, int, int, int);
    descriptor: (Ljavax/swing/text/FlowView;III)Ljavax/swing/text/View;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=16, args_size=5
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
        start local 2 // int startOffset
        start local 3 // int spanLeft
        start local 4 // int rowIndex
         0: .line 179
            aload 0 /* this */
            aload 1 /* fv */
            invokevirtual javax.swing.text.TextLayoutStrategy.getLogicalView:(Ljavax/swing/text/FlowView;)Ljavax/swing/text/View;
            astore 5 /* lv */
        start local 5 // javax.swing.text.View lv
         1: .line 180
            aload 1 /* fv */
            iload 4 /* rowIndex */
            invokevirtual javax.swing.text.FlowView.getView:(I)Ljavax/swing/text/View;
            pop
         2: .line 181
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.viewBuffer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifne 3
            iconst_0
            goto 4
      StackMap locals: javax.swing.text.View
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: istore 6 /* requireNextWord */
        start local 6 // boolean requireNextWord
         5: .line 182
            aload 5 /* lv */
            iload 2 /* startOffset */
            getstatic javax.swing.text.Position$Bias.Forward:Ljavax/swing/text/Position$Bias;
            invokevirtual javax.swing.text.View.getViewIndex:(ILjavax/swing/text/Position$Bias;)I
            istore 7 /* childIndex */
        start local 7 // int childIndex
         6: .line 183
            aload 5 /* lv */
            iload 7 /* childIndex */
            invokevirtual javax.swing.text.View.getView:(I)Ljavax/swing/text/View;
            astore 8 /* v */
        start local 8 // javax.swing.text.View v
         7: .line 185
            aload 0 /* this */
            aload 8 /* v */
            iload 2 /* startOffset */
            iload 3 /* spanLeft */
            iload 6 /* requireNextWord */
            invokevirtual javax.swing.text.TextLayoutStrategy.getLimitingOffset:(Ljavax/swing/text/View;IIZ)I
            istore 9 /* endOffset */
        start local 9 // int endOffset
         8: .line 186
            iload 9 /* endOffset */
            iload 2 /* startOffset */
            if_icmpne 10
         9: .line 187
            aconst_null
            areturn
        10: .line 191
      StackMap locals: javax.swing.text.TextLayoutStrategy javax.swing.text.FlowView int int int javax.swing.text.View int int javax.swing.text.View int
      StackMap stack:
            iload 2 /* startOffset */
            aload 8 /* v */
            invokevirtual javax.swing.text.View.getStartOffset:()I
            if_icmpne 13
            iload 9 /* endOffset */
            aload 8 /* v */
            invokevirtual javax.swing.text.View.getEndOffset:()I
            if_icmpne 13
        11: .line 193
            aload 8 /* v */
            astore 10 /* frag */
        start local 10 // javax.swing.text.View frag
        12: .line 194
            goto 14
        end local 10 // javax.swing.text.View frag
        13: .line 196
      StackMap locals:
      StackMap stack:
            aload 8 /* v */
            iload 2 /* startOffset */
            iload 9 /* endOffset */
            invokevirtual javax.swing.text.View.createFragment:(II)Ljavax/swing/text/View;
            astore 10 /* frag */
        start local 10 // javax.swing.text.View frag
        14: .line 199
      StackMap locals: javax.swing.text.View
      StackMap stack:
            aload 10 /* frag */
            instanceof javax.swing.text.GlyphView
            ifeq 30
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            ifnull 30
        15: .line 203
            iconst_0
            istore 11 /* isTab */
        start local 11 // boolean isTab
        16: .line 204
            aload 10 /* frag */
            invokevirtual javax.swing.text.View.getStartOffset:()I
            istore 12 /* p0 */
        start local 12 // int p0
        17: .line 205
            aload 10 /* frag */
            invokevirtual javax.swing.text.View.getEndOffset:()I
            istore 13 /* p1 */
        start local 13 // int p1
        18: .line 206
            iload 13 /* p1 */
            iload 12 /* p0 */
            isub
            iconst_1
            if_icmpne 23
        19: .line 208
            aload 10 /* frag */
            checkcast javax.swing.text.GlyphView
            iload 12 /* p0 */
            iload 13 /* p1 */
            invokevirtual javax.swing.text.GlyphView.getText:(II)Ljavax/swing/text/Segment;
            astore 14 /* s */
        start local 14 // javax.swing.text.Segment s
        20: .line 209
            aload 14 /* s */
            invokevirtual javax.swing.text.Segment.first:()C
            istore 15 /* ch */
        start local 15 // char ch
        21: .line 210
            iload 15 /* ch */
            bipush 9
            if_icmpne 23
        22: .line 211
            iconst_1
            istore 11 /* isTab */
        end local 15 // char ch
        end local 14 // javax.swing.text.Segment s
        23: .line 214
      StackMap locals: int int int
      StackMap stack:
            iload 11 /* isTab */
            ifeq 24
            aconst_null
            goto 27
        24: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            iload 3 /* spanLeft */
            i2f
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 9 /* endOffset */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toIteratorIndex:(I)I
        25: .line 216
            iload 6 /* requireNextWord */
        26: .line 215
            invokevirtual java.awt.font.LineBreakMeasurer.nextLayout:(FIZ)Ljava/awt/font/TextLayout;
        27: .line 214
      StackMap locals:
      StackMap stack: java.awt.font.TextLayout
            astore 14 /* tl */
        start local 14 // java.awt.font.TextLayout tl
        28: .line 217
            aload 14 /* tl */
            ifnull 30
        29: .line 218
            aload 10 /* frag */
            checkcast javax.swing.text.GlyphView
            new javax.swing.text.GlyphPainter2
            dup
            aload 14 /* tl */
            invokespecial javax.swing.text.GlyphPainter2.<init>:(Ljava/awt/font/TextLayout;)V
            invokevirtual javax.swing.text.GlyphView.setGlyphPainter:(Ljavax/swing/text/GlyphView$GlyphPainter;)V
        end local 14 // java.awt.font.TextLayout tl
        end local 13 // int p1
        end local 12 // int p0
        end local 11 // boolean isTab
        30: .line 221
      StackMap locals:
      StackMap stack:
            aload 10 /* frag */
            areturn
        end local 10 // javax.swing.text.View frag
        end local 9 // int endOffset
        end local 8 // javax.swing.text.View v
        end local 7 // int childIndex
        end local 6 // boolean requireNextWord
        end local 5 // javax.swing.text.View lv
        end local 4 // int rowIndex
        end local 3 // int spanLeft
        end local 2 // int startOffset
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   31     0             this  Ljavax/swing/text/TextLayoutStrategy;
            0   31     1               fv  Ljavax/swing/text/FlowView;
            0   31     2      startOffset  I
            0   31     3         spanLeft  I
            0   31     4         rowIndex  I
            1   31     5               lv  Ljavax/swing/text/View;
            5   31     6  requireNextWord  Z
            6   31     7       childIndex  I
            7   31     8                v  Ljavax/swing/text/View;
            8   31     9        endOffset  I
           12   13    10             frag  Ljavax/swing/text/View;
           14   31    10             frag  Ljavax/swing/text/View;
           16   30    11            isTab  Z
           17   30    12               p0  I
           18   30    13               p1  I
           20   23    14                s  Ljavax/swing/text/Segment;
           21   23    15               ch  C
           28   30    14               tl  Ljava/awt/font/TextLayout;
    MethodParameters:
             Name  Flags
      fv           
      startOffset  
      spanLeft     
      rowIndex     

  int getLimitingOffset(javax.swing.text.View, int, int, boolean);
    descriptor: (Ljavax/swing/text/View;IIZ)I
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.View v
        start local 2 // int startOffset
        start local 3 // int spanLeft
        start local 4 // boolean requireNextWord
         0: .line 237
            aload 1 /* v */
            invokevirtual javax.swing.text.View.getEndOffset:()I
            istore 5 /* endOffset */
        start local 5 // int endOffset
         1: .line 240
            aload 1 /* v */
            invokevirtual javax.swing.text.View.getDocument:()Ljavax/swing/text/Document;
            astore 6 /* doc */
        start local 6 // javax.swing.text.Document doc
         2: .line 241
            aload 6 /* doc */
            instanceof javax.swing.text.AbstractDocument
            ifeq 9
         3: .line 242
            aload 6 /* doc */
            checkcast javax.swing.text.AbstractDocument
            astore 7 /* d */
        start local 7 // javax.swing.text.AbstractDocument d
         4: .line 243
            aload 7 /* d */
            invokevirtual javax.swing.text.AbstractDocument.getBidiRootElement:()Ljavax/swing/text/Element;
            astore 8 /* bidiRoot */
        start local 8 // javax.swing.text.Element bidiRoot
         5: .line 244
            aload 8 /* bidiRoot */
            invokeinterface javax.swing.text.Element.getElementCount:()I
            iconst_1
            if_icmple 9
         6: .line 245
            aload 8 /* bidiRoot */
            iload 2 /* startOffset */
            invokeinterface javax.swing.text.Element.getElementIndex:(I)I
            istore 9 /* bidiIndex */
        start local 9 // int bidiIndex
         7: .line 246
            aload 8 /* bidiRoot */
            iload 9 /* bidiIndex */
            invokeinterface javax.swing.text.Element.getElement:(I)Ljavax/swing/text/Element;
            astore 10 /* bidiElem */
        start local 10 // javax.swing.text.Element bidiElem
         8: .line 247
            aload 10 /* bidiElem */
            invokeinterface javax.swing.text.Element.getEndOffset:()I
            iload 5 /* endOffset */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* endOffset */
        end local 10 // javax.swing.text.Element bidiElem
        end local 9 // int bidiIndex
        end local 8 // javax.swing.text.Element bidiRoot
        end local 7 // javax.swing.text.AbstractDocument d
         9: .line 252
      StackMap locals: int javax.swing.text.Document
      StackMap stack:
            aload 1 /* v */
            instanceof javax.swing.text.GlyphView
            ifeq 21
        10: .line 253
            aload 1 /* v */
            checkcast javax.swing.text.GlyphView
            iload 2 /* startOffset */
            iload 5 /* endOffset */
            invokevirtual javax.swing.text.GlyphView.getText:(II)Ljavax/swing/text/Segment;
            astore 7 /* s */
        start local 7 // javax.swing.text.Segment s
        11: .line 254
            aload 7 /* s */
            invokevirtual javax.swing.text.Segment.first:()C
            istore 8 /* ch */
        start local 8 // char ch
        12: .line 255
            iload 8 /* ch */
            bipush 9
            if_icmpne 15
        13: .line 258
            iload 2 /* startOffset */
            iconst_1
            iadd
            istore 5 /* endOffset */
        14: .line 259
            goto 21
        15: .line 260
      StackMap locals: javax.swing.text.Segment int
      StackMap stack:
            aload 7 /* s */
            invokevirtual javax.swing.text.Segment.next:()C
            istore 8 /* ch */
            goto 20
        16: .line 261
      StackMap locals:
      StackMap stack:
            iload 8 /* ch */
            bipush 9
            if_icmpne 19
        17: .line 263
            iload 2 /* startOffset */
            aload 7 /* s */
            invokevirtual javax.swing.text.Segment.getIndex:()I
            iadd
            aload 7 /* s */
            invokevirtual javax.swing.text.Segment.getBeginIndex:()I
            isub
            istore 5 /* endOffset */
        18: .line 264
            goto 21
        19: .line 260
      StackMap locals:
      StackMap stack:
            aload 7 /* s */
            invokevirtual javax.swing.text.Segment.next:()C
            istore 8 /* ch */
      StackMap locals:
      StackMap stack:
        20: iload 8 /* ch */
            ldc 65535
            if_icmpne 16
        end local 8 // char ch
        end local 7 // javax.swing.text.Segment s
        21: .line 271
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 5 /* endOffset */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toIteratorIndex:(I)I
            istore 7 /* limitIndex */
        start local 7 // int limitIndex
        22: .line 272
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            ifnull 27
        23: .line 273
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 2 /* startOffset */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toIteratorIndex:(I)I
            istore 8 /* index */
        start local 8 // int index
        24: .line 274
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            invokevirtual java.awt.font.LineBreakMeasurer.getPosition:()I
            iload 8 /* index */
            if_icmpeq 26
        25: .line 275
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            iload 8 /* index */
            invokevirtual java.awt.font.LineBreakMeasurer.setPosition:(I)V
        26: .line 277
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            iload 3 /* spanLeft */
            i2f
            iload 7 /* limitIndex */
            iload 4 /* requireNextWord */
            invokevirtual java.awt.font.LineBreakMeasurer.nextOffset:(FIZ)I
            istore 7 /* limitIndex */
        end local 8 // int index
        27: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 7 /* limitIndex */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toModelPosition:(I)I
            istore 8 /* pos */
        start local 8 // int pos
        28: .line 280
            iload 8 /* pos */
            ireturn
        end local 8 // int pos
        end local 7 // int limitIndex
        end local 6 // javax.swing.text.Document doc
        end local 5 // int endOffset
        end local 4 // boolean requireNextWord
        end local 3 // int spanLeft
        end local 2 // int startOffset
        end local 1 // javax.swing.text.View v
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   29     0             this  Ljavax/swing/text/TextLayoutStrategy;
            0   29     1                v  Ljavax/swing/text/View;
            0   29     2      startOffset  I
            0   29     3         spanLeft  I
            0   29     4  requireNextWord  Z
            1   29     5        endOffset  I
            2   29     6              doc  Ljavax/swing/text/Document;
            4    9     7                d  Ljavax/swing/text/AbstractDocument;
            5    9     8         bidiRoot  Ljavax/swing/text/Element;
            7    9     9        bidiIndex  I
            8    9    10         bidiElem  Ljavax/swing/text/Element;
           11   21     7                s  Ljavax/swing/text/Segment;
           12   21     8               ch  C
           22   29     7       limitIndex  I
           24   27     8            index  I
           28   29     8              pos  I
    MethodParameters:
                 Name  Flags
      v                
      startOffset      
      spanLeft         
      requireNextWord  

  void sync(javax.swing.text.FlowView);
    descriptor: (Ljavax/swing/text/FlowView;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=14, args_size=2
        start local 0 // javax.swing.text.TextLayoutStrategy this
        start local 1 // javax.swing.text.FlowView fv
         0: .line 290
            aload 0 /* this */
            aload 1 /* fv */
            invokevirtual javax.swing.text.TextLayoutStrategy.getLogicalView:(Ljavax/swing/text/FlowView;)Ljavax/swing/text/View;
            astore 2 /* lv */
        start local 2 // javax.swing.text.View lv
         1: .line 291
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            aload 2 /* lv */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.setView:(Ljavax/swing/text/View;)V
         2: .line 293
            aload 1 /* fv */
            invokevirtual javax.swing.text.FlowView.getContainer:()Ljava/awt/Container;
            astore 3 /* container */
        start local 3 // java.awt.Container container
         3: .line 295
            aload 3 /* container */
            invokestatic sun.swing.SwingUtilities2.getFontRenderContext:(Ljava/awt/Component;)Ljava/awt/font/FontRenderContext;
         4: .line 294
            astore 4 /* frc */
        start local 4 // java.awt.font.FontRenderContext frc
         5: .line 297
            aload 1 /* fv */
            invokevirtual javax.swing.text.FlowView.getContainer:()Ljava/awt/Container;
            astore 6 /* c */
        start local 6 // java.awt.Container c
         6: .line 298
            aload 6 /* c */
            ifnull 9
         7: .line 299
            aload 6 /* c */
            invokevirtual java.awt.Container.getLocale:()Ljava/util/Locale;
            invokestatic java.text.BreakIterator.getLineInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            astore 5 /* iter */
        start local 5 // java.text.BreakIterator iter
         8: .line 300
            goto 10
        end local 5 // java.text.BreakIterator iter
         9: .line 301
      StackMap locals: javax.swing.text.TextLayoutStrategy javax.swing.text.FlowView javax.swing.text.View java.awt.Container java.awt.font.FontRenderContext top java.awt.Container
      StackMap stack:
            invokestatic java.text.BreakIterator.getLineInstance:()Ljava/text/BreakIterator;
            astore 5 /* iter */
        start local 5 // java.text.BreakIterator iter
        10: .line 304
      StackMap locals: javax.swing.text.TextLayoutStrategy javax.swing.text.FlowView javax.swing.text.View java.awt.Container java.awt.font.FontRenderContext java.text.BreakIterator java.awt.Container
      StackMap stack:
            aconst_null
            astore 7 /* shaper */
        start local 7 // java.lang.Object shaper
        11: .line 305
            aload 6 /* c */
            instanceof javax.swing.JComponent
            ifeq 15
        12: .line 306
            aload 6 /* c */
            checkcast javax.swing.JComponent
        13: .line 307
            getstatic java.awt.font.TextAttribute.NUMERIC_SHAPING:Ljava/awt/font/TextAttribute;
        14: .line 306
            invokevirtual javax.swing.JComponent.getClientProperty:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 7 /* shaper */
        15: .line 309
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            aload 7 /* shaper */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.setShaper:(Ljava/lang/Object;)V
        16: .line 311
            aload 0 /* this */
            new java.awt.font.LineBreakMeasurer
            dup
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            aload 5 /* iter */
            aload 4 /* frc */
            invokespecial java.awt.font.LineBreakMeasurer.<init>:(Ljava/text/AttributedCharacterIterator;Ljava/text/BreakIterator;Ljava/awt/font/FontRenderContext;)V
            putfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
        17: .line 315
            aload 2 /* lv */
            invokevirtual javax.swing.text.View.getViewCount:()I
            istore 8 /* n */
        start local 8 // int n
        18: .line 316
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        19: goto 31
        20: .line 317
      StackMap locals: int int
      StackMap stack:
            aload 2 /* lv */
            iload 9 /* i */
            invokevirtual javax.swing.text.View.getView:(I)Ljavax/swing/text/View;
            astore 10 /* child */
        start local 10 // javax.swing.text.View child
        21: .line 318
            aload 10 /* child */
            instanceof javax.swing.text.GlyphView
            ifeq 30
        22: .line 319
            aload 10 /* child */
            invokevirtual javax.swing.text.View.getStartOffset:()I
            istore 11 /* p0 */
        start local 11 // int p0
        23: .line 320
            aload 10 /* child */
            invokevirtual javax.swing.text.View.getEndOffset:()I
            istore 12 /* p1 */
        start local 12 // int p1
        24: .line 321
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 11 /* p0 */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toIteratorIndex:(I)I
            invokevirtual java.awt.font.LineBreakMeasurer.setPosition:(I)V
        25: .line 323
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            ldc 3.4028235E38
        26: .line 324
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            iload 12 /* p1 */
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.toIteratorIndex:(I)I
            iconst_0
        27: .line 323
            invokevirtual java.awt.font.LineBreakMeasurer.nextLayout:(FIZ)Ljava/awt/font/TextLayout;
        28: .line 322
            astore 13 /* layout */
        start local 13 // java.awt.font.TextLayout layout
        29: .line 325
            aload 10 /* child */
            checkcast javax.swing.text.GlyphView
            new javax.swing.text.GlyphPainter2
            dup
            aload 13 /* layout */
            invokespecial javax.swing.text.GlyphPainter2.<init>:(Ljava/awt/font/TextLayout;)V
            invokevirtual javax.swing.text.GlyphView.setGlyphPainter:(Ljavax/swing/text/GlyphView$GlyphPainter;)V
        end local 13 // java.awt.font.TextLayout layout
        end local 12 // int p1
        end local 11 // int p0
        end local 10 // javax.swing.text.View child
        30: .line 316
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 9 /* i */
            iload 8 /* n */
            if_icmplt 20
        end local 9 // int i
        32: .line 330
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.measurer:Ljava/awt/font/LineBreakMeasurer;
            aload 0 /* this */
            getfield javax.swing.text.TextLayoutStrategy.text:Ljavax/swing/text/TextLayoutStrategy$AttributedSegment;
            invokevirtual javax.swing.text.TextLayoutStrategy$AttributedSegment.getBeginIndex:()I
            invokevirtual java.awt.font.LineBreakMeasurer.setPosition:(I)V
        33: .line 332
            return
        end local 8 // int n
        end local 7 // java.lang.Object shaper
        end local 6 // java.awt.Container c
        end local 5 // java.text.BreakIterator iter
        end local 4 // java.awt.font.FontRenderContext frc
        end local 3 // java.awt.Container container
        end local 2 // javax.swing.text.View lv
        end local 1 // javax.swing.text.FlowView fv
        end local 0 // javax.swing.text.TextLayoutStrategy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   34     0       this  Ljavax/swing/text/TextLayoutStrategy;
            0   34     1         fv  Ljavax/swing/text/FlowView;
            1   34     2         lv  Ljavax/swing/text/View;
            3   34     3  container  Ljava/awt/Container;
            5   34     4        frc  Ljava/awt/font/FontRenderContext;
            8    9     5       iter  Ljava/text/BreakIterator;
           10   34     5       iter  Ljava/text/BreakIterator;
            6   34     6          c  Ljava/awt/Container;
           11   34     7     shaper  Ljava/lang/Object;
           18   34     8          n  I
           19   32     9          i  I
           21   30    10      child  Ljavax/swing/text/View;
           23   30    11         p0  I
           24   30    12         p1  I
           29   30    13     layout  Ljava/awt/font/TextLayout;
    MethodParameters:
      Name  Flags
      fv    
}
SourceFile: "TextLayoutStrategy.java"
NestMembers:
  javax.swing.text.TextLayoutStrategy$AttributedSegment
InnerClasses:
  public FlowStrategy = javax.swing.text.FlowView$FlowStrategy of javax.swing.text.FlowView
  public abstract GlyphPainter = javax.swing.text.GlyphView$GlyphPainter of javax.swing.text.GlyphView
  public final Bias = javax.swing.text.Position$Bias of javax.swing.text.Position
  AttributedSegment = javax.swing.text.TextLayoutStrategy$AttributedSegment of javax.swing.text.TextLayoutStrategy