public final class java.awt.font.TextLayout implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.awt.font.TextLayout
  super_class: java.lang.Object
{
  private int characterCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean isVerticalLine;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private byte baseline;
    descriptor: B
    flags: (0x0002) ACC_PRIVATE

  private float[] baselineOffsets;
    descriptor: [F
    flags: (0x0002) ACC_PRIVATE

  private java.awt.font.TextLine textLine;
    descriptor: Ljava/awt/font/TextLine;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.font.TextLine$TextLineMetrics lineMetrics;
    descriptor: Ljava/awt/font/TextLine$TextLineMetrics;
    flags: (0x0002) ACC_PRIVATE

  private float visibleAdvance;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private boolean cacheIsValid;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private float justifyRatio;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private static final float ALREADY_JUSTIFIED;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -53.9

  private static float dx;
    descriptor: F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static float dy;
    descriptor: F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private java.awt.geom.Rectangle2D naturalBounds;
    descriptor: Ljava/awt/geom/Rectangle2D;
    flags: (0x0002) ACC_PRIVATE

  private java.awt.geom.Rectangle2D boundsRect;
    descriptor: Ljava/awt/geom/Rectangle2D;
    flags: (0x0002) ACC_PRIVATE

  private boolean caretsInLigaturesAreAllowed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public static final java.awt.font.TextLayout$CaretPolicy DEFAULT_CARET_POLICY;
    descriptor: Ljava/awt/font/TextLayout$CaretPolicy;
    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 352
            new java.awt.font.TextLayout$CaretPolicy
            dup
            invokespecial java.awt.font.TextLayout$CaretPolicy.<init>:()V
            putstatic java.awt.font.TextLayout.DEFAULT_CARET_POLICY:Ljava/awt/font/TextLayout$CaretPolicy;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.lang.String, java.awt.Font, java.awt.font.FontRenderContext);
    descriptor: (Ljava/lang/String;Ljava/awt/Font;Ljava/awt/font/FontRenderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.lang.String string
        start local 2 // java.awt.Font font
        start local 3 // java.awt.font.FontRenderContext frc
         0: .line 371
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 242
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.isVerticalLine:Z
         2: .line 249
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
         3: .line 257
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.cacheIsValid:Z
         4: .line 285
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
         5: .line 291
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
         6: .line 297
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.caretsInLigaturesAreAllowed:Z
         7: .line 373
            aload 2 /* font */
            ifnonnull 9
         8: .line 374
            new java.lang.IllegalArgumentException
            dup
            ldc "Null font passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 377
      StackMap locals: java.awt.font.TextLayout java.lang.String java.awt.Font java.awt.font.FontRenderContext
      StackMap stack:
            aload 1 /* string */
            ifnonnull 11
        10: .line 378
            new java.lang.IllegalArgumentException
            dup
            ldc "Null string passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 381
      StackMap locals:
      StackMap stack:
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 382
            new java.lang.IllegalArgumentException
            dup
            ldc "Zero length string passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 385
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* attributes */
        start local 4 // java.util.Map attributes
        14: .line 386
            aload 2 /* font */
            invokevirtual java.awt.Font.hasLayoutAttributes:()Z
            ifeq 16
        15: .line 387
            aload 2 /* font */
            invokevirtual java.awt.Font.getAttributes:()Ljava/util/Map;
            astore 4 /* attributes */
        16: .line 390
      StackMap locals: java.util.Map
      StackMap stack:
            aload 1 /* string */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 5 /* text */
        start local 5 // char[] text
        17: .line 391
            aload 2 /* font */
            aload 5 /* text */
            iconst_0
            aload 5 /* text */
            arraylength
            invokestatic java.awt.font.TextLayout.sameBaselineUpTo:(Ljava/awt/Font;[CII)I
            aload 5 /* text */
            arraylength
            if_icmpne 20
        18: .line 392
            aload 0 /* this */
            aload 5 /* text */
            aload 2 /* font */
            aload 4 /* attributes */
            aload 3 /* frc */
            invokevirtual java.awt.font.TextLayout.fastInit:([CLjava/awt/Font;Ljava/util/Map;Ljava/awt/font/FontRenderContext;)V
        19: .line 393
            goto 26
        20: .line 394
      StackMap locals: char[]
      StackMap stack:
            aload 4 /* attributes */
            ifnonnull 22
        21: .line 395
            new java.text.AttributedString
            dup
            aload 1 /* string */
            invokespecial java.text.AttributedString.<init>:(Ljava/lang/String;)V
            goto 23
        22: .line 396
      StackMap locals:
      StackMap stack:
            new java.text.AttributedString
            dup
            aload 1 /* string */
            aload 4 /* attributes */
            invokespecial java.text.AttributedString.<init>:(Ljava/lang/String;Ljava/util/Map;)V
        23: .line 394
      StackMap locals:
      StackMap stack: java.text.AttributedString
            astore 6 /* as */
        start local 6 // java.text.AttributedString as
        24: .line 397
            aload 6 /* as */
            getstatic java.awt.font.TextAttribute.FONT:Ljava/awt/font/TextAttribute;
            aload 2 /* font */
            invokevirtual java.text.AttributedString.addAttribute:(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)V
        25: .line 398
            aload 0 /* this */
            aload 6 /* as */
            invokevirtual java.text.AttributedString.getIterator:()Ljava/text/AttributedCharacterIterator;
            aload 5 /* text */
            aload 3 /* frc */
            invokevirtual java.awt.font.TextLayout.standardInit:(Ljava/text/AttributedCharacterIterator;[CLjava/awt/font/FontRenderContext;)V
        end local 6 // java.text.AttributedString as
        26: .line 400
      StackMap locals:
      StackMap stack:
            return
        end local 5 // char[] text
        end local 4 // java.util.Map attributes
        end local 3 // java.awt.font.FontRenderContext frc
        end local 2 // java.awt.Font font
        end local 1 // java.lang.String string
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   27     0        this  Ljava/awt/font/TextLayout;
            0   27     1      string  Ljava/lang/String;
            0   27     2        font  Ljava/awt/Font;
            0   27     3         frc  Ljava/awt/font/FontRenderContext;
           14   27     4  attributes  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
           17   27     5        text  [C
           24   26     6          as  Ljava/text/AttributedString;
    MethodParameters:
        Name  Flags
      string  
      font    
      frc     

  public void <init>(java.lang.String, java.util.Map<? extends java.text.AttributedCharacterIterator$Attribute, ?>, java.awt.font.FontRenderContext);
    descriptor: (Ljava/lang/String;Ljava/util/Map;Ljava/awt/font/FontRenderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.lang.String string
        start local 2 // java.util.Map attributes
        start local 3 // java.awt.font.FontRenderContext frc
         0: .line 419
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 242
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.isVerticalLine:Z
         2: .line 249
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
         3: .line 257
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.cacheIsValid:Z
         4: .line 285
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
         5: .line 291
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
         6: .line 297
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.caretsInLigaturesAreAllowed:Z
         7: .line 422
            aload 1 /* string */
            ifnonnull 9
         8: .line 423
            new java.lang.IllegalArgumentException
            dup
            ldc "Null string passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 426
      StackMap locals: java.awt.font.TextLayout java.lang.String java.util.Map java.awt.font.FontRenderContext
      StackMap stack:
            aload 2 /* attributes */
            ifnonnull 11
        10: .line 427
            new java.lang.IllegalArgumentException
            dup
            ldc "Null map passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 430
      StackMap locals:
      StackMap stack:
            aload 1 /* string */
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 431
            new java.lang.IllegalArgumentException
            dup
            ldc "Zero length string passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 434
      StackMap locals:
      StackMap stack:
            aload 1 /* string */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 4 /* text */
        start local 4 // char[] text
        14: .line 435
            aload 4 /* text */
            iconst_0
            aload 4 /* text */
            arraylength
            aload 2 /* attributes */
            invokestatic java.awt.font.TextLayout.singleFont:([CIILjava/util/Map;)Ljava/awt/Font;
            astore 5 /* font */
        start local 5 // java.awt.Font font
        15: .line 436
            aload 5 /* font */
            ifnull 18
        16: .line 437
            aload 0 /* this */
            aload 4 /* text */
            aload 5 /* font */
            aload 2 /* attributes */
            aload 3 /* frc */
            invokevirtual java.awt.font.TextLayout.fastInit:([CLjava/awt/Font;Ljava/util/Map;Ljava/awt/font/FontRenderContext;)V
        17: .line 438
            goto 20
        18: .line 439
      StackMap locals: char[] java.awt.Font
      StackMap stack:
            new java.text.AttributedString
            dup
            aload 1 /* string */
            aload 2 /* attributes */
            invokespecial java.text.AttributedString.<init>:(Ljava/lang/String;Ljava/util/Map;)V
            astore 6 /* as */
        start local 6 // java.text.AttributedString as
        19: .line 440
            aload 0 /* this */
            aload 6 /* as */
            invokevirtual java.text.AttributedString.getIterator:()Ljava/text/AttributedCharacterIterator;
            aload 4 /* text */
            aload 3 /* frc */
            invokevirtual java.awt.font.TextLayout.standardInit:(Ljava/text/AttributedCharacterIterator;[CLjava/awt/font/FontRenderContext;)V
        end local 6 // java.text.AttributedString as
        20: .line 442
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.awt.Font font
        end local 4 // char[] text
        end local 3 // java.awt.font.FontRenderContext frc
        end local 2 // java.util.Map attributes
        end local 1 // java.lang.String string
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Ljava/awt/font/TextLayout;
            0   21     1      string  Ljava/lang/String;
            0   21     2  attributes  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
            0   21     3         frc  Ljava/awt/font/FontRenderContext;
           14   21     4        text  [C
           15   21     5        font  Ljava/awt/Font;
           19   20     6          as  Ljava/text/AttributedString;
    Signature: (Ljava/lang/String;Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;Ljava/awt/font/FontRenderContext;)V
    MethodParameters:
            Name  Flags
      string      
      attributes  
      frc         

  private static java.awt.Font singleFont(char[], int, int, java.util.Map<? extends java.text.AttributedCharacterIterator$Attribute, ?>);
    descriptor: ([CIILjava/util/Map;)Ljava/awt/Font;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // char[] text
        start local 1 // int start
        start local 2 // int limit
        start local 3 // java.util.Map attributes
         0: .line 456
            aload 3 /* attributes */
            getstatic java.awt.font.TextAttribute.CHAR_REPLACEMENT:Ljava/awt/font/TextAttribute;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 2
         1: .line 457
            aconst_null
            areturn
         2: .line 460
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* font */
        start local 4 // java.awt.Font font
         3: .line 462
            aload 3 /* attributes */
            getstatic java.awt.font.TextAttribute.FONT:Ljava/awt/font/TextAttribute;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.Font
            astore 4 /* font */
         4: .line 463
            goto 6
         5: .line 464
      StackMap locals: char[] int int java.util.Map java.awt.Font
      StackMap stack: java.lang.ClassCastException
            pop
         6: .line 466
      StackMap locals:
      StackMap stack:
            aload 4 /* font */
            ifnonnull 16
         7: .line 467
            aload 3 /* attributes */
            getstatic java.awt.font.TextAttribute.FAMILY:Ljava/awt/font/TextAttribute;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            ifnull 11
         8: .line 468
            aload 3 /* attributes */
            invokestatic java.awt.Font.getFont:(Ljava/util/Map;)Ljava/awt/Font;
            astore 4 /* font */
         9: .line 469
            aload 4 /* font */
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            invokevirtual java.awt.Font.canDisplayUpTo:([CII)I
            iconst_m1
            if_icmpeq 16
        10: .line 470
            aconst_null
            areturn
        11: .line 473
      StackMap locals:
      StackMap stack:
            invokestatic sun.font.FontResolver.getInstance:()Lsun/font/FontResolver;
            astore 5 /* resolver */
        start local 5 // sun.font.FontResolver resolver
        12: .line 474
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            invokestatic sun.font.CodePointIterator.create:([CII)Lsun/font/CodePointIterator;
            astore 6 /* iter */
        start local 6 // sun.font.CodePointIterator iter
        13: .line 475
            aload 5 /* resolver */
            aload 6 /* iter */
            invokevirtual sun.font.FontResolver.nextFontRunIndex:(Lsun/font/CodePointIterator;)I
            istore 7 /* fontIndex */
        start local 7 // int fontIndex
        14: .line 476
            aload 6 /* iter */
            invokevirtual sun.font.CodePointIterator.charIndex:()I
            iload 2 /* limit */
            if_icmpne 16
        15: .line 477
            aload 5 /* resolver */
            iload 7 /* fontIndex */
            aload 3 /* attributes */
            invokevirtual sun.font.FontResolver.getFont:(ILjava/util/Map;)Ljava/awt/Font;
            astore 4 /* font */
        end local 7 // int fontIndex
        end local 6 // sun.font.CodePointIterator iter
        end local 5 // sun.font.FontResolver resolver
        16: .line 482
      StackMap locals:
      StackMap stack:
            aload 4 /* font */
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* limit */
            invokestatic java.awt.font.TextLayout.sameBaselineUpTo:(Ljava/awt/Font;[CII)I
            iload 2 /* limit */
            if_icmpeq 18
        17: .line 483
            aconst_null
            areturn
        18: .line 486
      StackMap locals:
      StackMap stack:
            aload 4 /* font */
            areturn
        end local 4 // java.awt.Font font
        end local 3 // java.util.Map attributes
        end local 2 // int limit
        end local 1 // int start
        end local 0 // char[] text
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        text  [C
            0   19     1       start  I
            0   19     2       limit  I
            0   19     3  attributes  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
            3   19     4        font  Ljava/awt/Font;
           12   16     5    resolver  Lsun/font/FontResolver;
           13   16     6        iter  Lsun/font/CodePointIterator;
           14   16     7   fontIndex  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.ClassCastException
    Signature: ([CIILjava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;)Ljava/awt/Font;
    MethodParameters:
            Name  Flags
      text        
      start       
      limit       
      attributes  

  public void <init>(java.text.AttributedCharacterIterator, java.awt.font.FontRenderContext);
    descriptor: (Ljava/text/AttributedCharacterIterator;Ljava/awt/font/FontRenderContext;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.text.AttributedCharacterIterator text
        start local 2 // java.awt.font.FontRenderContext frc
         0: .line 503
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 242
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.isVerticalLine:Z
         2: .line 249
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
         3: .line 257
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.cacheIsValid:Z
         4: .line 285
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
         5: .line 291
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
         6: .line 297
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.caretsInLigaturesAreAllowed:Z
         7: .line 505
            aload 1 /* text */
            ifnonnull 9
         8: .line 506
            new java.lang.IllegalArgumentException
            dup
            ldc "Null iterator passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 509
      StackMap locals: java.awt.font.TextLayout java.text.AttributedCharacterIterator java.awt.font.FontRenderContext
      StackMap stack:
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            istore 3 /* start */
        start local 3 // int start
        10: .line 510
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getEndIndex:()I
            istore 4 /* limit */
        start local 4 // int limit
        11: .line 511
            iload 3 /* start */
            iload 4 /* limit */
            if_icmpne 13
        12: .line 512
            new java.lang.IllegalArgumentException
            dup
            ldc "Zero length iterator passed to TextLayout constructor."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        13: .line 515
      StackMap locals: int int
      StackMap stack:
            iload 4 /* limit */
            iload 3 /* start */
            isub
            istore 5 /* len */
        start local 5 // int len
        14: .line 516
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            pop
        15: .line 517
            iload 5 /* len */
            newarray 5
            astore 6 /* chars */
        start local 6 // char[] chars
        16: .line 518
            iconst_0
            istore 7 /* n */
        start local 7 // int n
        17: .line 519
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            istore 8 /* c */
        start local 8 // char c
        18: .line 520
            goto 21
        19: .line 523
      StackMap locals: java.awt.font.TextLayout java.text.AttributedCharacterIterator java.awt.font.FontRenderContext int int int char[] int int
      StackMap stack:
            aload 6 /* chars */
            iload 7 /* n */
            iinc 7 /* n */ 1
            iload 8 /* c */
            castore
        20: .line 521
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.next:()C
            istore 8 /* c */
        21: .line 520
      StackMap locals:
      StackMap stack:
            iload 8 /* c */
            ldc 65535
            if_icmpne 19
        end local 8 // char c
        22: .line 526
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.first:()C
            pop
        23: .line 527
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getRunLimit:()I
            iload 4 /* limit */
            if_icmpne 29
        24: .line 529
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
            astore 8 /* attributes */
        start local 8 // java.util.Map attributes
        25: .line 530
            aload 6 /* chars */
            iconst_0
            iload 5 /* len */
            aload 8 /* attributes */
            invokestatic java.awt.font.TextLayout.singleFont:([CIILjava/util/Map;)Ljava/awt/Font;
            astore 9 /* font */
        start local 9 // java.awt.Font font
        26: .line 531
            aload 9 /* font */
            ifnull 29
        27: .line 532
            aload 0 /* this */
            aload 6 /* chars */
            aload 9 /* font */
            aload 8 /* attributes */
            aload 2 /* frc */
            invokevirtual java.awt.font.TextLayout.fastInit:([CLjava/awt/Font;Ljava/util/Map;Ljava/awt/font/FontRenderContext;)V
        28: .line 533
            return
        end local 9 // java.awt.Font font
        end local 8 // java.util.Map attributes
        29: .line 537
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* text */
            aload 6 /* chars */
            aload 2 /* frc */
            invokevirtual java.awt.font.TextLayout.standardInit:(Ljava/text/AttributedCharacterIterator;[CLjava/awt/font/FontRenderContext;)V
        30: .line 538
            return
        end local 7 // int n
        end local 6 // char[] chars
        end local 5 // int len
        end local 4 // int limit
        end local 3 // int start
        end local 2 // java.awt.font.FontRenderContext frc
        end local 1 // java.text.AttributedCharacterIterator text
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   31     0        this  Ljava/awt/font/TextLayout;
            0   31     1        text  Ljava/text/AttributedCharacterIterator;
            0   31     2         frc  Ljava/awt/font/FontRenderContext;
           10   31     3       start  I
           11   31     4       limit  I
           14   31     5         len  I
           16   31     6       chars  [C
           17   31     7           n  I
           18   22     8           c  C
           25   29     8  attributes  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
           26   29     9        font  Ljava/awt/Font;
    MethodParameters:
      Name  Flags
      text  
      frc   

  void <init>(java.awt.font.TextLine, byte, float[], float);
    descriptor: (Ljava/awt/font/TextLine;B[FF)V
    flags: (0x0000) 
    Code:
      stack=2, locals=5, args_size=5
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextLine textLine
        start local 2 // byte baseline
        start local 3 // float[] baselineOffsets
        start local 4 // float justifyRatio
         0: .line 552
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 242
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.isVerticalLine:Z
         2: .line 249
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
         3: .line 257
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.cacheIsValid:Z
         4: .line 285
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
         5: .line 291
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
         6: .line 297
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.caretsInLigaturesAreAllowed:Z
         7: .line 557
            aload 0 /* this */
            aload 1 /* textLine */
            invokevirtual java.awt.font.TextLine.characterCount:()I
            putfield java.awt.font.TextLayout.characterCount:I
         8: .line 558
            aload 0 /* this */
            iload 2 /* baseline */
            putfield java.awt.font.TextLayout.baseline:B
         9: .line 559
            aload 0 /* this */
            aload 3 /* baselineOffsets */
            putfield java.awt.font.TextLayout.baselineOffsets:[F
        10: .line 560
            aload 0 /* this */
            aload 1 /* textLine */
            putfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
        11: .line 561
            aload 0 /* this */
            fload 4 /* justifyRatio */
            putfield java.awt.font.TextLayout.justifyRatio:F
        12: .line 562
            return
        end local 4 // float justifyRatio
        end local 3 // float[] baselineOffsets
        end local 2 // byte baseline
        end local 1 // java.awt.font.TextLine textLine
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Ljava/awt/font/TextLayout;
            0   13     1         textLine  Ljava/awt/font/TextLine;
            0   13     2         baseline  B
            0   13     3  baselineOffsets  [F
            0   13     4     justifyRatio  F
    MethodParameters:
                 Name  Flags
      textLine         
      baseline         
      baselineOffsets  
      justifyRatio     

  private void paragraphInit(byte, sun.font.CoreMetrics, java.util.Map<? extends java.text.AttributedCharacterIterator$Attribute, ?>, );
    descriptor: (BLsun/font/CoreMetrics;Ljava/util/Map;[C)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=5
        start local 0 // java.awt.font.TextLayout this
        start local 1 // byte aBaseline
        start local 2 // sun.font.CoreMetrics lm
        start local 3 // java.util.Map paragraphAttrs
        start local 4 // char[] text
         0: .line 571
            aload 0 /* this */
            iload 1 /* aBaseline */
            putfield java.awt.font.TextLayout.baseline:B
         1: .line 574
            aload 0 /* this */
            aload 2 /* lm */
            getfield sun.font.CoreMetrics.baselineOffsets:[F
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baseline:B
            invokestatic java.awt.font.TextLine.getNormalizedOffsets:([FB)[F
            putfield java.awt.font.TextLayout.baselineOffsets:[F
         2: .line 576
            aload 0 /* this */
            aload 3 /* paragraphAttrs */
            invokestatic sun.font.AttributeValues.getJustification:(Ljava/util/Map;)F
            putfield java.awt.font.TextLayout.justifyRatio:F
         3: .line 577
            aload 3 /* paragraphAttrs */
            invokestatic sun.font.AttributeValues.getNumericShaping:(Ljava/util/Map;)Ljava/awt/font/NumericShaper;
            astore 5 /* shaper */
        start local 5 // java.awt.font.NumericShaper shaper
         4: .line 578
            aload 5 /* shaper */
            ifnull 6
         5: .line 579
            aload 5 /* shaper */
            aload 4 /* text */
            iconst_0
            aload 4 /* text */
            arraylength
            invokevirtual java.awt.font.NumericShaper.shape:([CII)V
         6: .line 581
      StackMap locals: java.awt.font.NumericShaper
      StackMap stack:
            return
        end local 5 // java.awt.font.NumericShaper shaper
        end local 4 // char[] text
        end local 3 // java.util.Map paragraphAttrs
        end local 2 // sun.font.CoreMetrics lm
        end local 1 // byte aBaseline
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Ljava/awt/font/TextLayout;
            0    7     1       aBaseline  B
            0    7     2              lm  Lsun/font/CoreMetrics;
            0    7     3  paragraphAttrs  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
            0    7     4            text  [C
            4    7     5          shaper  Ljava/awt/font/NumericShaper;
    Signature: (BLsun/font/CoreMetrics;Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;[C)V
    MethodParameters:
                Name  Flags
      aBaseline       
      lm              
      paragraphAttrs  
      text            

  private void fastInit(char[], java.awt.Font, java.util.Map<? extends java.text.AttributedCharacterIterator$Attribute, ?>, java.awt.font.FontRenderContext);
    descriptor: ([CLjava/awt/Font;Ljava/util/Map;Ljava/awt/font/FontRenderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=5
        start local 0 // java.awt.font.TextLayout this
        start local 1 // char[] chars
        start local 2 // java.awt.Font font
        start local 3 // java.util.Map attrs
        start local 4 // java.awt.font.FontRenderContext frc
         0: .line 595
            aload 0 /* this */
            iconst_0
            putfield java.awt.font.TextLayout.isVerticalLine:Z
         1: .line 597
            aload 2 /* font */
            aload 1 /* chars */
            iconst_0
            aload 1 /* chars */
            arraylength
            aload 4 /* frc */
            invokevirtual java.awt.Font.getLineMetrics:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            astore 5 /* lm */
        start local 5 // java.awt.font.LineMetrics lm
         2: .line 598
            aload 5 /* lm */
            invokestatic sun.font.CoreMetrics.get:(Ljava/awt/font/LineMetrics;)Lsun/font/CoreMetrics;
            astore 6 /* cm */
        start local 6 // sun.font.CoreMetrics cm
         3: .line 599
            aload 6 /* cm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            i2b
            istore 7 /* glyphBaseline */
        start local 7 // byte glyphBaseline
         4: .line 601
            aload 3 /* attrs */
            ifnonnull 9
         5: .line 602
            aload 0 /* this */
            iload 7 /* glyphBaseline */
            putfield java.awt.font.TextLayout.baseline:B
         6: .line 603
            aload 0 /* this */
            aload 6 /* cm */
            getfield sun.font.CoreMetrics.baselineOffsets:[F
            putfield java.awt.font.TextLayout.baselineOffsets:[F
         7: .line 604
            aload 0 /* this */
            fconst_1
            putfield java.awt.font.TextLayout.justifyRatio:F
         8: .line 605
            goto 10
         9: .line 606
      StackMap locals: java.awt.font.LineMetrics sun.font.CoreMetrics int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* glyphBaseline */
            aload 6 /* cm */
            aload 3 /* attrs */
            aload 1 /* chars */
            invokevirtual java.awt.font.TextLayout.paragraphInit:(BLsun/font/CoreMetrics;Ljava/util/Map;[C)V
        10: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chars */
            arraylength
            putfield java.awt.font.TextLayout.characterCount:I
        11: .line 611
            aload 0 /* this */
            aload 4 /* frc */
            aload 1 /* chars */
            aload 2 /* font */
            aload 6 /* cm */
            aload 3 /* attrs */
            invokestatic java.awt.font.TextLine.fastCreateTextLine:(Ljava/awt/font/FontRenderContext;[CLjava/awt/Font;Lsun/font/CoreMetrics;Ljava/util/Map;)Ljava/awt/font/TextLine;
            putfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
        12: .line 612
            return
        end local 7 // byte glyphBaseline
        end local 6 // sun.font.CoreMetrics cm
        end local 5 // java.awt.font.LineMetrics lm
        end local 4 // java.awt.font.FontRenderContext frc
        end local 3 // java.util.Map attrs
        end local 2 // java.awt.Font font
        end local 1 // char[] chars
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   13     0           this  Ljava/awt/font/TextLayout;
            0   13     1          chars  [C
            0   13     2           font  Ljava/awt/Font;
            0   13     3          attrs  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
            0   13     4            frc  Ljava/awt/font/FontRenderContext;
            2   13     5             lm  Ljava/awt/font/LineMetrics;
            3   13     6             cm  Lsun/font/CoreMetrics;
            4   13     7  glyphBaseline  B
    Signature: ([CLjava/awt/Font;Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;Ljava/awt/font/FontRenderContext;)V
    MethodParameters:
       Name  Flags
      chars  
      font   
      attrs  
      frc    

  private void standardInit(java.text.AttributedCharacterIterator, char[], java.awt.font.FontRenderContext);
    descriptor: (Ljava/text/AttributedCharacterIterator;[CLjava/awt/font/FontRenderContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.text.AttributedCharacterIterator text
        start local 2 // char[] chars
        start local 3 // java.awt.font.FontRenderContext frc
         0: .line 621
            aload 0 /* this */
            aload 2 /* chars */
            arraylength
            putfield java.awt.font.TextLayout.characterCount:I
         1: .line 630
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getAttributes:()Ljava/util/Map;
            astore 4 /* paragraphAttrs */
        start local 4 // java.util.Map paragraphAttrs
         2: .line 632
            aload 1 /* text */
            invokestatic java.awt.font.TextLine.advanceToFirstFont:(Ljava/text/AttributedCharacterIterator;)Z
            istore 5 /* haveFont */
        start local 5 // boolean haveFont
         3: .line 634
            iload 5 /* haveFont */
            ifeq 10
         4: .line 635
            aload 1 /* text */
            invokestatic java.awt.font.TextLine.getFontAtCurrentPos:(Ljava/text/AttributedCharacterIterator;)Ljava/awt/Font;
            astore 6 /* defaultFont */
        start local 6 // java.awt.Font defaultFont
         5: .line 636
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getIndex:()I
            aload 1 /* text */
            invokeinterface java.text.AttributedCharacterIterator.getBeginIndex:()I
            isub
            istore 7 /* charsStart */
        start local 7 // int charsStart
         6: .line 637
            aload 6 /* defaultFont */
            aload 2 /* chars */
            iload 7 /* charsStart */
            iload 7 /* charsStart */
            iconst_1
            iadd
            aload 3 /* frc */
            invokevirtual java.awt.Font.getLineMetrics:([CIILjava/awt/font/FontRenderContext;)Ljava/awt/font/LineMetrics;
            astore 8 /* lm */
        start local 8 // java.awt.font.LineMetrics lm
         7: .line 638
            aload 8 /* lm */
            invokestatic sun.font.CoreMetrics.get:(Ljava/awt/font/LineMetrics;)Lsun/font/CoreMetrics;
            astore 9 /* cm */
        start local 9 // sun.font.CoreMetrics cm
         8: .line 639
            aload 0 /* this */
            aload 9 /* cm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            i2b
            aload 9 /* cm */
            aload 4 /* paragraphAttrs */
            aload 2 /* chars */
            invokevirtual java.awt.font.TextLayout.paragraphInit:(BLsun/font/CoreMetrics;Ljava/util/Map;[C)V
        end local 9 // sun.font.CoreMetrics cm
        end local 8 // java.awt.font.LineMetrics lm
        end local 7 // int charsStart
        end local 6 // java.awt.Font defaultFont
         9: .line 640
            goto 15
        10: .line 646
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 4 /* paragraphAttrs */
            getstatic java.awt.font.TextAttribute.CHAR_REPLACEMENT:Ljava/awt/font/TextAttribute;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.awt.font.GraphicAttribute
        11: .line 645
            astore 6 /* graphic */
        start local 6 // java.awt.font.GraphicAttribute graphic
        12: .line 647
            aload 6 /* graphic */
            invokestatic java.awt.font.TextLayout.getBaselineFromGraphic:(Ljava/awt/font/GraphicAttribute;)B
            istore 7 /* defaultBaseline */
        start local 7 // byte defaultBaseline
        13: .line 648
            aload 6 /* graphic */
            invokestatic sun.font.GraphicComponent.createCoreMetrics:(Ljava/awt/font/GraphicAttribute;)Lsun/font/CoreMetrics;
            astore 8 /* cm */
        start local 8 // sun.font.CoreMetrics cm
        14: .line 649
            aload 0 /* this */
            iload 7 /* defaultBaseline */
            aload 8 /* cm */
            aload 4 /* paragraphAttrs */
            aload 2 /* chars */
            invokevirtual java.awt.font.TextLayout.paragraphInit:(BLsun/font/CoreMetrics;Ljava/util/Map;[C)V
        end local 8 // sun.font.CoreMetrics cm
        end local 7 // byte defaultBaseline
        end local 6 // java.awt.font.GraphicAttribute graphic
        end local 5 // boolean haveFont
        end local 4 // java.util.Map paragraphAttrs
        15: .line 653
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* frc */
            aload 1 /* text */
            aload 2 /* chars */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            invokestatic java.awt.font.TextLine.standardCreateTextLine:(Ljava/awt/font/FontRenderContext;Ljava/text/AttributedCharacterIterator;[C[F)Ljava/awt/font/TextLine;
            putfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
        16: .line 654
            return
        end local 3 // java.awt.font.FontRenderContext frc
        end local 2 // char[] chars
        end local 1 // java.text.AttributedCharacterIterator text
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   17     0             this  Ljava/awt/font/TextLayout;
            0   17     1             text  Ljava/text/AttributedCharacterIterator;
            0   17     2            chars  [C
            0   17     3              frc  Ljava/awt/font/FontRenderContext;
            2   15     4   paragraphAttrs  Ljava/util/Map<+Ljava/text/AttributedCharacterIterator$Attribute;*>;
            3   15     5         haveFont  Z
            5    9     6      defaultFont  Ljava/awt/Font;
            6    9     7       charsStart  I
            7    9     8               lm  Ljava/awt/font/LineMetrics;
            8    9     9               cm  Lsun/font/CoreMetrics;
           12   15     6          graphic  Ljava/awt/font/GraphicAttribute;
           13   15     7  defaultBaseline  B
           14   15     8               cm  Lsun/font/CoreMetrics;
    MethodParameters:
       Name  Flags
      text   
      chars  
      frc    

  private void ensureCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 662
            aload 0 /* this */
            getfield java.awt.font.TextLayout.cacheIsValid:Z
            ifne 2
         1: .line 663
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.buildCache:()V
         2: .line 665
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/font/TextLayout;

  private void buildCache();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 668
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            putfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
         1: .line 671
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 20
         2: .line 673
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            istore 1 /* lastNonSpace */
        start local 1 // int lastNonSpace
         3: .line 674
            goto 8
         4: .line 675
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* lastNonSpace */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* logIndex */
        start local 2 // int logIndex
         5: .line 676
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* logIndex */
            invokevirtual java.awt.font.TextLine.isCharSpace:(I)Z
            ifne 7
         6: .line 677
            goto 9
         7: .line 680
      StackMap locals: int
      StackMap stack:
            iinc 1 /* lastNonSpace */ -1
        end local 2 // int logIndex
         8: .line 674
      StackMap locals:
      StackMap stack:
            iload 1 /* lastNonSpace */
            iconst_m1
            if_icmpne 4
         9: .line 683
      StackMap locals:
      StackMap stack:
            iload 1 /* lastNonSpace */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            if_icmpne 12
        10: .line 684
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
            putfield java.awt.font.TextLayout.visibleAdvance:F
        11: .line 685
            goto 36
        12: .line 686
      StackMap locals:
      StackMap stack:
            iload 1 /* lastNonSpace */
            iconst_m1
            if_icmpne 15
        13: .line 687
            aload 0 /* this */
            fconst_0
            putfield java.awt.font.TextLayout.visibleAdvance:F
        14: .line 688
            goto 36
        15: .line 690
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* lastNonSpace */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* logIndex */
        start local 2 // int logIndex
        16: .line 691
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
        17: .line 692
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAdvance:(I)F
            fadd
        18: .line 691
            putfield java.awt.font.TextLayout.visibleAdvance:F
        end local 2 // int logIndex
        end local 1 // int lastNonSpace
        19: .line 694
            goto 36
        20: .line 697
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* leftmostNonSpace */
        start local 1 // int leftmostNonSpace
        21: .line 698
            goto 26
        22: .line 699
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* leftmostNonSpace */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* logIndex */
        start local 2 // int logIndex
        23: .line 700
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* logIndex */
            invokevirtual java.awt.font.TextLine.isCharSpace:(I)Z
            ifne 25
        24: .line 701
            goto 27
        25: .line 704
      StackMap locals: int
      StackMap stack:
            iinc 1 /* leftmostNonSpace */ 1
        end local 2 // int logIndex
        26: .line 698
      StackMap locals:
      StackMap stack:
            iload 1 /* leftmostNonSpace */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 22
        27: .line 707
      StackMap locals:
      StackMap stack:
            iload 1 /* leftmostNonSpace */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 30
        28: .line 708
            aload 0 /* this */
            fconst_0
            putfield java.awt.font.TextLayout.visibleAdvance:F
        29: .line 709
            goto 36
        30: .line 710
      StackMap locals:
      StackMap stack:
            iload 1 /* leftmostNonSpace */
            ifne 33
        31: .line 711
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
            putfield java.awt.font.TextLayout.visibleAdvance:F
        32: .line 712
            goto 36
        33: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* leftmostNonSpace */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* logIndex */
        start local 2 // int logIndex
        34: .line 715
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
            fstore 3 /* pos */
        start local 3 // float pos
        35: .line 716
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
            fload 3 /* pos */
            fsub
            putfield java.awt.font.TextLayout.visibleAdvance:F
        end local 3 // float pos
        end local 2 // int logIndex
        end local 1 // int leftmostNonSpace
        36: .line 721
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
        37: .line 722
            aload 0 /* this */
            aconst_null
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
        38: .line 724
            aload 0 /* this */
            iconst_1
            putfield java.awt.font.TextLayout.cacheIsValid:Z
        39: .line 725
            return
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   40     0              this  Ljava/awt/font/TextLayout;
            3   19     1      lastNonSpace  I
            5    8     2          logIndex  I
           16   19     2          logIndex  I
           21   36     1  leftmostNonSpace  I
           23   26     2          logIndex  I
           34   36     2          logIndex  I
           35   36     3               pos  F

  private java.awt.geom.Rectangle2D getNaturalBounds();
    descriptor: ()Ljava/awt/geom/Rectangle2D;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 732
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 734
            aload 0 /* this */
            getfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
            ifnonnull 3
         2: .line 735
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getItalicBounds:()Ljava/awt/geom/Rectangle2D;
            putfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
         3: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.naturalBounds:Ljava/awt/geom/Rectangle2D;
            areturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/font/TextLayout;

  protected java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 758
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 760
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 761
            new java.lang.InternalError
            dup
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/font/TextLayout;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  private void checkTextHit(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 770
            aload 1 /* hit */
            ifnonnull 2
         1: .line 771
            new java.lang.IllegalArgumentException
            dup
            ldc "TextHitInfo is null."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 774
      StackMap locals:
      StackMap stack:
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getInsertionIndex:()I
            iflt 4
         3: .line 775
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getInsertionIndex:()I
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 5
         4: .line 776
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "TextHitInfo is out of range"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 778
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljava/awt/font/TextLayout;
            0    6     1   hit  Ljava/awt/font/TextHitInfo;
    MethodParameters:
      Name  Flags
      hit   

  public java.awt.font.TextLayout getJustifiedLayout(float);
    descriptor: (F)Ljava/awt/font/TextLayout;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // float justificationWidth
         0: .line 797
            fload 1 /* justificationWidth */
            fconst_0
            fcmpg
            ifgt 2
         1: .line 798
            new java.lang.IllegalArgumentException
            dup
            ldc "justificationWidth <= 0 passed to TextLayout.getJustifiedLayout()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 801
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.justifyRatio:F
            ldc -53.9
            fcmpl
            ifne 4
         3: .line 802
            new java.lang.Error
            dup
            ldc "Can't justify again."
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 805
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         5: .line 808
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            istore 2 /* limit */
        start local 2 // int limit
         6: .line 809
            goto 8
         7: .line 810
      StackMap locals: int
      StackMap stack:
            iinc 2 /* limit */ -1
         8: .line 809
      StackMap locals:
      StackMap stack:
            iload 2 /* limit */
            ifle 9
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* limit */
            iconst_1
            isub
            invokevirtual java.awt.font.TextLine.isCharWhitespace:(I)Z
            ifne 7
         9: .line 813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            fload 1 /* justificationWidth */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.justifyRatio:F
            iconst_0
            iload 2 /* limit */
            invokevirtual java.awt.font.TextLine.getJustifiedLine:(FFII)Ljava/awt/font/TextLine;
            astore 3 /* newLine */
        start local 3 // java.awt.font.TextLine newLine
        10: .line 814
            aload 3 /* newLine */
            ifnull 12
        11: .line 815
            new java.awt.font.TextLayout
            dup
            aload 3 /* newLine */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baseline:B
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            ldc -53.9
            invokespecial java.awt.font.TextLayout.<init>:(Ljava/awt/font/TextLine;B[FF)V
            areturn
        12: .line 818
      StackMap locals: java.awt.font.TextLine
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // java.awt.font.TextLine newLine
        end local 2 // int limit
        end local 1 // float justificationWidth
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   13     0                this  Ljava/awt/font/TextLayout;
            0   13     1  justificationWidth  F
            6   13     2               limit  I
           10   13     3             newLine  Ljava/awt/font/TextLine;
    MethodParameters:
                    Name  Flags
      justificationWidth  

  protected void handleJustify(float);
    descriptor: (F)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // float justificationWidth
         0: .line 844
            return
        end local 1 // float justificationWidth
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    1     0                this  Ljava/awt/font/TextLayout;
            0    1     1  justificationWidth  F
    MethodParameters:
                    Name  Flags
      justificationWidth  

  public byte getBaseline();
    descriptor: ()B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 858
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baseline:B
            ireturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  public float[] getBaselineOffsets();
    descriptor: ()[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 877
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            arraylength
            newarray 6
            astore 1 /* offsets */
        start local 1 // float[] offsets
         1: .line 878
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            iconst_0
            aload 1 /* offsets */
            iconst_0
            aload 1 /* offsets */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         2: .line 879
            aload 1 /* offsets */
            areturn
        end local 1 // float[] offsets
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljava/awt/font/TextLayout;
            1    3     1  offsets  [F

  public float getAdvance();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 890
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 891
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
            freturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public float getVisibleAdvance();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 902
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 903
            aload 0 /* this */
            getfield java.awt.font.TextLayout.visibleAdvance:F
            freturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public float getAscent();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 918
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 919
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            freturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public float getDescent();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 933
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 934
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            freturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public float getLeading();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 959
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 960
            aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.leading:F
            freturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public java.awt.geom.Rectangle2D getBounds();
    descriptor: ()Ljava/awt/geom/Rectangle2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 974
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 976
            aload 0 /* this */
            getfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
            ifnonnull 10
         2: .line 977
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getVisualBounds:()Ljava/awt/geom/Rectangle2D;
            astore 1 /* vb */
        start local 1 // java.awt.geom.Rectangle2D vb
         3: .line 978
            getstatic java.awt.font.TextLayout.dx:F
            fconst_0
            fcmpl
            ifne 4
            getstatic java.awt.font.TextLayout.dy:F
            fconst_0
            fcmpl
            ifeq 9
         4: .line 979
      StackMap locals: java.awt.geom.Rectangle2D
      StackMap stack:
            aload 1 /* vb */
            aload 1 /* vb */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            getstatic java.awt.font.TextLayout.dx:F
            f2d
            dsub
         5: .line 980
            aload 1 /* vb */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            getstatic java.awt.font.TextLayout.dy:F
            f2d
            dsub
         6: .line 981
            aload 1 /* vb */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
         7: .line 982
            aload 1 /* vb */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
         8: .line 979
            invokevirtual java.awt.geom.Rectangle2D.setRect:(DDDD)V
         9: .line 984
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* vb */
            putfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
        end local 1 // java.awt.geom.Rectangle2D vb
        10: .line 987
      StackMap locals:
      StackMap stack:
            new java.awt.geom.Rectangle2D$Float
            dup
            invokespecial java.awt.geom.Rectangle2D$Float.<init>:()V
            astore 1 /* bounds */
        start local 1 // java.awt.geom.Rectangle2D bounds
        11: .line 988
            aload 1 /* bounds */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.boundsRect:Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.geom.Rectangle2D.setRect:(Ljava/awt/geom/Rectangle2D;)V
        12: .line 990
            aload 1 /* bounds */
            areturn
        end local 1 // java.awt.geom.Rectangle2D bounds
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Ljava/awt/font/TextLayout;
            3   10     1      vb  Ljava/awt/geom/Rectangle2D;
           11   13     1  bounds  Ljava/awt/geom/Rectangle2D;

  public java.awt.Rectangle getPixelBounds(java.awt.font.FontRenderContext, float, float);
    descriptor: (Ljava/awt/font/FontRenderContext;FF)Ljava/awt/Rectangle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.FontRenderContext frc
        start local 2 // float x
        start local 3 // float y
         0: .line 1010
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            aload 1 /* frc */
            fload 2 /* x */
            fload 3 /* y */
            invokevirtual java.awt.font.TextLine.getPixelBounds:(Ljava/awt/font/FontRenderContext;FF)Ljava/awt/Rectangle;
            areturn
        end local 3 // float y
        end local 2 // float x
        end local 1 // java.awt.font.FontRenderContext frc
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;
            0    1     1   frc  Ljava/awt/font/FontRenderContext;
            0    1     2     x  F
            0    1     3     y  F
    MethodParameters:
      Name  Flags
      frc   
      x     
      y     

  public boolean isLeftToRight();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 1030
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ireturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  public boolean isVertical();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 1039
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ireturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  public int getCharacterCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 1048
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            ireturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  private float[] getCaretInfo(int, java.awt.geom.Rectangle2D, float[]);
    descriptor: (ILjava/awt/geom/Rectangle2D;[F)[F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=12, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int caret
        start local 2 // java.awt.geom.Rectangle2D bounds
        start local 3 // float[] info
         0: .line 1128
            iload 1 /* caret */
            ifeq 1
            iload 1 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 17
         1: .line 1132
      StackMap locals:
      StackMap stack:
            iload 1 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 7
         2: .line 1133
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 9 /* logIndex */
        start local 9 // int logIndex
         3: .line 1134
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
         4: .line 1135
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAdvance:(I)F
         5: .line 1134
            fadd
            fstore 8 /* pos */
        start local 8 // float pos
         6: .line 1136
            goto 9
        end local 9 // int logIndex
        end local 8 // float pos
         7: .line 1138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 9 /* logIndex */
        start local 9 // int logIndex
         8: .line 1139
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
            fstore 8 /* pos */
        start local 8 // float pos
         9: .line 1141
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[] top top top top float int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAngle:(I)F
            fstore 10 /* angle */
        start local 10 // float angle
        10: .line 1142
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharShift:(I)F
            fstore 11 /* shift */
        start local 11 // float shift
        11: .line 1143
            fload 8 /* pos */
            fload 10 /* angle */
            fload 11 /* shift */
            fmul
            fadd
            fstore 8 /* pos */
        12: .line 1144
            fload 8 /* pos */
            fload 10 /* angle */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAscent:(I)F
            fmul
            fadd
            dup
            fstore 5 /* top2X */
        start local 5 // float top2X
        13: fstore 4 /* top1X */
        start local 4 // float top1X
        14: .line 1145
            fload 8 /* pos */
            fload 10 /* angle */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 9 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharDescent:(I)F
            fmul
            fsub
            dup
            fstore 7 /* bottom2X */
        start local 7 // float bottom2X
        15: fstore 6 /* bottom1X */
        end local 11 // float shift
        end local 10 // float angle
        end local 9 // int logIndex
        end local 8 // float pos
        start local 6 // float bottom1X
        16: .line 1146
            goto 39
        end local 7 // float bottom2X
        end local 6 // float bottom1X
        end local 5 // float top2X
        end local 4 // float top1X
        17: .line 1150
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[]
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            iconst_1
            isub
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 8 /* logIndex */
        start local 8 // int logIndex
        18: .line 1151
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAngle:(I)F
            fstore 9 /* angle1 */
        start local 9 // float angle1
        19: .line 1152
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
        20: .line 1153
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAdvance:(I)F
        21: .line 1152
            fadd
            fstore 10 /* pos1 */
        start local 10 // float pos1
        22: .line 1154
            fload 9 /* angle1 */
            fconst_0
            fcmpl
            ifeq 27
        23: .line 1155
            fload 10 /* pos1 */
            fload 9 /* angle1 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharShift:(I)F
            fmul
            fadd
            fstore 10 /* pos1 */
        24: .line 1156
            fload 10 /* pos1 */
            fload 9 /* angle1 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAscent:(I)F
            fmul
            fadd
            fstore 4 /* top1X */
        start local 4 // float top1X
        25: .line 1157
            fload 10 /* pos1 */
            fload 9 /* angle1 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharDescent:(I)F
            fmul
            fsub
            fstore 6 /* bottom1X */
        start local 6 // float bottom1X
        26: .line 1158
            goto 29
        end local 6 // float bottom1X
        end local 4 // float top1X
        27: .line 1160
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[] top top top top int float float
      StackMap stack:
            fload 10 /* pos1 */
            dup
            fstore 6 /* bottom1X */
        start local 6 // float bottom1X
        28: fstore 4 /* top1X */
        end local 10 // float pos1
        end local 9 // float angle1
        end local 8 // int logIndex
        start local 4 // float top1X
        29: .line 1164
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[] float top float
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 8 /* logIndex */
        start local 8 // int logIndex
        30: .line 1165
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAngle:(I)F
            fstore 9 /* angle2 */
        start local 9 // float angle2
        31: .line 1166
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(I)F
            fstore 10 /* pos2 */
        start local 10 // float pos2
        32: .line 1167
            fload 9 /* angle2 */
            fconst_0
            fcmpl
            ifeq 37
        33: .line 1168
            fload 10 /* pos2 */
            fload 9 /* angle2 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharShift:(I)F
            fmul
            fadd
            fstore 10 /* pos2 */
        34: .line 1169
            fload 10 /* pos2 */
            fload 9 /* angle2 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharAscent:(I)F
            fmul
            fadd
            fstore 5 /* top2X */
        start local 5 // float top2X
        35: .line 1170
            fload 10 /* pos2 */
            fload 9 /* angle2 */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 8 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharDescent:(I)F
            fmul
            fsub
            fstore 7 /* bottom2X */
        start local 7 // float bottom2X
        36: .line 1171
            goto 39
        end local 7 // float bottom2X
        end local 5 // float top2X
        37: .line 1173
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[] float top float top int float float
      StackMap stack:
            fload 10 /* pos2 */
            dup
            fstore 7 /* bottom2X */
        start local 7 // float bottom2X
        38: fstore 5 /* top2X */
        end local 10 // float pos2
        end local 9 // float angle2
        end local 8 // int logIndex
        start local 5 // float top2X
        39: .line 1178
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D float[] float float float float
      StackMap stack:
            fload 4 /* top1X */
            fload 5 /* top2X */
            fadd
            fconst_2
            fdiv
            fstore 8 /* topX */
        start local 8 // float topX
        40: .line 1179
            fload 6 /* bottom1X */
            fload 7 /* bottom2X */
            fadd
            fconst_2
            fdiv
            fstore 9 /* bottomX */
        start local 9 // float bottomX
        41: .line 1181
            aload 3 /* info */
            ifnonnull 43
        42: .line 1182
            iconst_2
            newarray 6
            astore 3 /* info */
        43: .line 1185
      StackMap locals: float float
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 47
        44: .line 1186
            aload 3 /* info */
            iconst_1
            fload 8 /* topX */
            fload 9 /* bottomX */
            fsub
            f2d
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            ddiv
            d2f
            fastore
        45: .line 1187
            aload 3 /* info */
            iconst_0
            fload 8 /* topX */
            f2d
            aload 3 /* info */
            iconst_1
            faload
            f2d
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dmul
            dadd
            d2f
            fastore
        46: .line 1188
            goto 49
        47: .line 1190
      StackMap locals:
      StackMap stack:
            aload 3 /* info */
            iconst_1
            fload 8 /* topX */
            fload 9 /* bottomX */
            fsub
            f2d
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            ddiv
            d2f
            fastore
        48: .line 1191
            aload 3 /* info */
            iconst_0
            fload 9 /* bottomX */
            f2d
            aload 3 /* info */
            iconst_1
            faload
            f2d
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getMaxY:()D
            dmul
            dadd
            d2f
            fastore
        49: .line 1194
      StackMap locals:
      StackMap stack:
            aload 3 /* info */
            areturn
        end local 9 // float bottomX
        end local 8 // float topX
        end local 7 // float bottom2X
        end local 6 // float bottom1X
        end local 5 // float top2X
        end local 4 // float top1X
        end local 3 // float[] info
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // int caret
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   50     0      this  Ljava/awt/font/TextLayout;
            0   50     1     caret  I
            0   50     2    bounds  Ljava/awt/geom/Rectangle2D;
            0   50     3      info  [F
           14   17     4     top1X  F
           25   27     4     top1X  F
           29   50     4     top1X  F
           13   17     5     top2X  F
           35   37     5     top2X  F
           39   50     5     top2X  F
           16   17     6  bottom1X  F
           26   27     6  bottom1X  F
           28   50     6  bottom1X  F
           15   17     7  bottom2X  F
           36   37     7  bottom2X  F
           38   50     7  bottom2X  F
            6    7     8       pos  F
            9   16     8       pos  F
            3    7     9  logIndex  I
            8   16     9  logIndex  I
           10   16    10     angle  F
           11   16    11     shift  F
           18   29     8  logIndex  I
           19   29     9    angle1  F
           22   29    10      pos1  F
           30   39     8  logIndex  I
           31   39     9    angle2  F
           32   39    10      pos2  F
           40   50     8      topX  F
           41   50     9   bottomX  F
    MethodParameters:
        Name  Flags
      caret   
      bounds  
      info    

  public float[] getCaretInfo(java.awt.font.TextHitInfo, java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
        start local 2 // java.awt.geom.Rectangle2D bounds
         0: .line 1215
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1216
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1218
            aload 0 /* this */
            aload 1 /* hit */
            aload 2 /* bounds */
            invokevirtual java.awt.font.TextLayout.getCaretInfoTestInternal:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[F
            areturn
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljava/awt/font/TextLayout;
            0    3     1     hit  Ljava/awt/font/TextHitInfo;
            0    3     2  bounds  Ljava/awt/geom/Rectangle2D;
    MethodParameters:
        Name  Flags
      hit     
      bounds  

  private float[] getCaretInfoTestInternal(java.awt.font.TextHitInfo, java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=22, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
        start local 2 // java.awt.geom.Rectangle2D bounds
         0: .line 1229
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1230
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1232
            bipush 6
            newarray 6
            astore 3 /* info */
        start local 3 // float[] info
         3: .line 1235
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            aload 2 /* bounds */
            aload 3 /* info */
            invokevirtual java.awt.font.TextLayout.getCaretInfo:(ILjava/awt/geom/Rectangle2D;[F)[F
            pop
         4: .line 1240
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            istore 16 /* charix */
        start local 16 // int charix
         5: .line 1241
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            istore 17 /* lead */
        start local 17 // boolean lead
         6: .line 1242
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            istore 18 /* ltr */
        start local 18 // boolean ltr
         7: .line 1243
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.isVertical:()Z
            ifeq 8
            iconst_0
            goto 9
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] top top top top top top top top top top top top int int int
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 19 /* horiz */
        start local 19 // boolean horiz
        10: .line 1245
            iload 16 /* charix */
            iconst_m1
            if_icmpeq 11
            iload 16 /* charix */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 33
        11: .line 1248
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            astore 20 /* m */
        start local 20 // java.awt.font.TextLine$TextLineMetrics m
        12: .line 1249
            iload 18 /* ltr */
            iload 16 /* charix */
            iconst_m1
            if_icmpne 13
            iconst_1
            goto 14
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] top top top top top top top top top top top top int int int int java.awt.font.TextLine$TextLineMetrics
      StackMap stack: int
        13: iconst_0
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] top top top top top top top top top top top top int int int int java.awt.font.TextLine$TextLineMetrics
      StackMap stack: int int
        14: if_icmpne 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 21 /* low */
        start local 21 // boolean low
        17: .line 1250
            dconst_0
            dstore 4 /* iangle */
        start local 4 // double iangle
        18: .line 1251
            iload 19 /* horiz */
            ifeq 26
        19: .line 1252
            iload 21 /* low */
            ifeq 20
            fconst_0
            goto 21
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] double top top top top top top top top top top int int int int java.awt.font.TextLine$TextLineMetrics int
      StackMap stack:
        20: aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
      StackMap locals:
      StackMap stack: float
        21: f2d
            dup2
            dstore 12 /* p2x */
        start local 12 // double p2x
        22: dstore 8 /* p1x */
        start local 8 // double p1x
        23: .line 1253
            aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            fneg
            f2d
            dstore 10 /* p1y */
        start local 10 // double p1y
        24: .line 1254
            aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            f2d
            dstore 14 /* p2y */
        start local 14 // double p2y
        25: .line 1255
            goto 66
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        26: .line 1256
      StackMap locals:
      StackMap stack:
            iload 21 /* low */
            ifeq 27
            fconst_0
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
      StackMap locals:
      StackMap stack: float
        28: f2d
            dup2
            dstore 14 /* p2y */
        start local 14 // double p2y
        29: dstore 10 /* p1y */
        start local 10 // double p1y
        30: .line 1257
            aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            f2d
            dstore 8 /* p1x */
        start local 8 // double p1x
        31: .line 1258
            aload 20 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            f2d
            dstore 12 /* p2x */
        end local 21 // boolean low
        end local 20 // java.awt.font.TextLine$TextLineMetrics m
        start local 12 // double p2x
        32: .line 1260
            goto 66
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        end local 4 // double iangle
        33: .line 1261
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] top top top top top top top top top top top top int int int int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* charix */
            invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
            astore 20 /* thiscm */
        start local 20 // sun.font.CoreMetrics thiscm
        34: .line 1262
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.italicAngle:F
            f2d
            dstore 4 /* iangle */
        start local 4 // double iangle
        35: .line 1263
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* charix */
            iload 17 /* lead */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(IZ)F
            f2d
            dstore 6 /* ixbase */
        start local 6 // double ixbase
        36: .line 1264
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            ifge 53
        37: .line 1266
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            astore 21 /* m */
        start local 21 // java.awt.font.TextLine$TextLineMetrics m
        38: .line 1267
            iload 19 /* horiz */
            ifeq 48
        39: .line 1268
            dload 6 /* ixbase */
            dup2
            dstore 12 /* p2x */
        start local 12 // double p2x
        40: dstore 8 /* p1x */
        start local 8 // double p1x
        41: .line 1269
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            iconst_m1
            if_icmpne 45
        42: .line 1270
            aload 21 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            fneg
            f2d
            dstore 10 /* p1y */
        start local 10 // double p1y
        43: .line 1271
            dload 10 /* p1y */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.height:F
            f2d
            dadd
            dstore 14 /* p2y */
        start local 14 // double p2y
        44: .line 1272
            goto 66
        end local 14 // double p2y
        end local 10 // double p1y
        45: .line 1273
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] double double double top top double top top int int int int sun.font.CoreMetrics java.awt.font.TextLine$TextLineMetrics
      StackMap stack:
            aload 21 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            f2d
            dstore 14 /* p2y */
        start local 14 // double p2y
        46: .line 1274
            dload 14 /* p2y */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.height:F
            f2d
            dsub
            dstore 10 /* p1y */
        start local 10 // double p1y
        47: .line 1276
            goto 66
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        48: .line 1277
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] double double top top top top top top top top int int int int sun.font.CoreMetrics java.awt.font.TextLine$TextLineMetrics
      StackMap stack:
            dload 6 /* ixbase */
            dup2
            dstore 14 /* p2y */
        start local 14 // double p2y
        49: dstore 10 /* p1y */
        start local 10 // double p1y
        50: .line 1278
            aload 21 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            f2d
            dstore 8 /* p1x */
        start local 8 // double p1x
        51: .line 1279
            aload 21 /* m */
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            f2d
            dstore 12 /* p2x */
        end local 21 // java.awt.font.TextLine$TextLineMetrics m
        start local 12 // double p2x
        52: .line 1282
            goto 66
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        53: .line 1283
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            faload
            fstore 21 /* bo */
        start local 21 // float bo
        54: .line 1284
            iload 19 /* horiz */
            ifeq 61
        55: .line 1285
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ssOffset:F
            f2d
            dmul
            dadd
            dstore 6 /* ixbase */
        56: .line 1286
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ascent:F
            f2d
            dmul
            dadd
            dstore 8 /* p1x */
        start local 8 // double p1x
        57: .line 1287
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.descent:F
            f2d
            dmul
            dsub
            dstore 12 /* p2x */
        start local 12 // double p2x
        58: .line 1288
            fload 21 /* bo */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ascent:F
            fsub
            f2d
            dstore 10 /* p1y */
        start local 10 // double p1y
        59: .line 1289
            fload 21 /* bo */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.descent:F
            fadd
            f2d
            dstore 14 /* p2y */
        start local 14 // double p2y
        60: .line 1290
            goto 66
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        61: .line 1291
      StackMap locals: float
      StackMap stack:
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ssOffset:F
            f2d
            dmul
            dsub
            dstore 6 /* ixbase */
        62: .line 1292
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ascent:F
            f2d
            dmul
            dadd
            dstore 10 /* p1y */
        start local 10 // double p1y
        63: .line 1293
            dload 6 /* ixbase */
            dload 4 /* iangle */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.descent:F
            f2d
            dmul
            dsub
            dstore 14 /* p2y */
        start local 14 // double p2y
        64: .line 1294
            fload 21 /* bo */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.ascent:F
            fadd
            f2d
            dstore 8 /* p1x */
        start local 8 // double p1x
        65: .line 1295
            fload 21 /* bo */
            aload 20 /* thiscm */
            getfield sun.font.CoreMetrics.descent:F
            fadd
            f2d
            dstore 12 /* p2x */
        end local 21 // float bo
        end local 20 // sun.font.CoreMetrics thiscm
        end local 6 // double ixbase
        start local 12 // double p2x
        66: .line 1300
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Rectangle2D float[] double top top double double double double int int int int
      StackMap stack:
            aload 3 /* info */
            iconst_2
            dload 8 /* p1x */
            d2f
            fastore
        67: .line 1301
            aload 3 /* info */
            iconst_3
            dload 10 /* p1y */
            d2f
            fastore
        68: .line 1302
            aload 3 /* info */
            iconst_4
            dload 12 /* p2x */
            d2f
            fastore
        69: .line 1303
            aload 3 /* info */
            iconst_5
            dload 14 /* p2y */
            d2f
            fastore
        70: .line 1305
            aload 3 /* info */
            areturn
        end local 19 // boolean horiz
        end local 18 // boolean ltr
        end local 17 // boolean lead
        end local 16 // int charix
        end local 14 // double p2y
        end local 12 // double p2x
        end local 10 // double p1y
        end local 8 // double p1x
        end local 4 // double iangle
        end local 3 // float[] info
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   71     0    this  Ljava/awt/font/TextLayout;
            0   71     1     hit  Ljava/awt/font/TextHitInfo;
            0   71     2  bounds  Ljava/awt/geom/Rectangle2D;
            3   71     3    info  [F
           18   33     4  iangle  D
           35   71     4  iangle  D
           36   66     6  ixbase  D
           23   26     8     p1x  D
           31   33     8     p1x  D
           41   48     8     p1x  D
           51   53     8     p1x  D
           57   61     8     p1x  D
           65   71     8     p1x  D
           24   26    10     p1y  D
           30   33    10     p1y  D
           43   45    10     p1y  D
           47   48    10     p1y  D
           50   53    10     p1y  D
           59   61    10     p1y  D
           63   71    10     p1y  D
           22   26    12     p2x  D
           32   33    12     p2x  D
           40   48    12     p2x  D
           52   53    12     p2x  D
           58   61    12     p2x  D
           66   71    12     p2x  D
           25   26    14     p2y  D
           29   33    14     p2y  D
           44   45    14     p2y  D
           46   48    14     p2y  D
           49   53    14     p2y  D
           60   61    14     p2y  D
           64   71    14     p2y  D
            5   71    16  charix  I
            6   71    17    lead  Z
            7   71    18     ltr  Z
           10   71    19   horiz  Z
           12   32    20       m  Ljava/awt/font/TextLine$TextLineMetrics;
           17   32    21     low  Z
           34   66    20  thiscm  Lsun/font/CoreMetrics;
           38   52    21       m  Ljava/awt/font/TextLine$TextLineMetrics;
           54   66    21      bo  F
    MethodParameters:
        Name  Flags
      hit     
      bounds  

  public float[] getCaretInfo(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1318
            aload 0 /* this */
            aload 1 /* hit */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.font.TextLayout.getCaretInfo:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[F
            areturn
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;
            0    1     1   hit  Ljava/awt/font/TextHitInfo;
    MethodParameters:
      Name  Flags
      hit   

  private int hitToCaret(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1331
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            istore 2 /* hitIndex */
        start local 2 // int hitIndex
         1: .line 1333
            iload 2 /* hitIndex */
            ifge 5
         2: .line 1334
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 3
            iconst_0
            goto 4
      StackMap locals: int
      StackMap stack:
         3: aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
      StackMap locals:
      StackMap stack: int
         4: ireturn
         5: .line 1335
      StackMap locals:
      StackMap stack:
            iload 2 /* hitIndex */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmplt 9
         6: .line 1336
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 7
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: ireturn
         9: .line 1339
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* hitIndex */
            invokevirtual java.awt.font.TextLine.logicalToVisual:(I)I
            istore 3 /* visIndex */
        start local 3 // int visIndex
        10: .line 1341
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* hitIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            if_icmpeq 12
        11: .line 1342
            iinc 3 /* visIndex */ 1
        12: .line 1345
      StackMap locals: int
      StackMap stack:
            iload 3 /* visIndex */
            ireturn
        end local 3 // int visIndex
        end local 2 // int hitIndex
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Ljava/awt/font/TextLayout;
            0   13     1       hit  Ljava/awt/font/TextHitInfo;
            1   13     2  hitIndex  I
           10   13     3  visIndex  I
    MethodParameters:
      Name  Flags
      hit   

  private java.awt.font.TextHitInfo caretToHit(int);
    descriptor: (I)Ljava/awt/font/TextHitInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int caret
         0: .line 1358
            iload 1 /* caret */
            ifeq 1
            iload 1 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 6
         1: .line 1360
      StackMap locals:
      StackMap stack:
            iload 1 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            if_icmpne 5
         4: .line 1361
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            areturn
         5: .line 1364
      StackMap locals:
      StackMap stack:
            iconst_m1
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
            areturn
         6: .line 1369
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* charIndex */
        start local 2 // int charIndex
         7: .line 1370
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* charIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            istore 3 /* leading */
        start local 3 // boolean leading
         8: .line 1372
            iload 3 /* leading */
            ifeq 9
            iload 2 /* charIndex */
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            goto 10
         9: .line 1373
      StackMap locals: int int
      StackMap stack:
            iload 2 /* charIndex */
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
        10: .line 1372
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
            areturn
        end local 3 // boolean leading
        end local 2 // int charIndex
        end local 1 // int caret
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Ljava/awt/font/TextLayout;
            0   11     1      caret  I
            7   11     2  charIndex  I
            8   11     3    leading  Z
    MethodParameters:
       Name  Flags
      caret  

  private boolean caretIsValid(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int caret
         0: .line 1379
            iload 1 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpeq 1
            iload 1 /* caret */
            ifne 2
         1: .line 1380
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1383
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* offset */
        start local 2 // int offset
         3: .line 1385
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* offset */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            ifne 7
         4: .line 1386
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* caret */
            iconst_1
            isub
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 2 /* offset */
         5: .line 1387
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* offset */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            ifeq 7
         6: .line 1388
            iconst_1
            ireturn
         7: .line 1395
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* offset */
            invokevirtual java.awt.font.TextLine.caretAtOffsetIsValid:(I)Z
            ireturn
        end local 2 // int offset
        end local 1 // int caret
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Ljava/awt/font/TextLayout;
            0    8     1   caret  I
            3    8     2  offset  I
    MethodParameters:
       Name  Flags
      caret  

  public java.awt.font.TextHitInfo getNextRightHit(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1408
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1409
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1411
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 2 /* caret */
        start local 2 // int caret
         3: .line 1413
            iload 2 /* caret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 5
         4: .line 1414
            aconst_null
            areturn
         5: .line 1418
      StackMap locals: int
      StackMap stack:
            iinc 2 /* caret */ 1
         6: .line 1419
            aload 0 /* this */
            iload 2 /* caret */
            invokevirtual java.awt.font.TextLayout.caretIsValid:(I)Z
            ifeq 5
         7: .line 1421
            aload 0 /* this */
            iload 2 /* caret */
            invokevirtual java.awt.font.TextLayout.caretToHit:(I)Ljava/awt/font/TextHitInfo;
            areturn
        end local 2 // int caret
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljava/awt/font/TextLayout;
            0    8     1    hit  Ljava/awt/font/TextHitInfo;
            3    8     2  caret  I
    MethodParameters:
      Name  Flags
      hit   

  public java.awt.font.TextHitInfo getNextRightHit(int, java.awt.font.TextLayout$CaretPolicy);
    descriptor: (ILjava/awt/font/TextLayout$CaretPolicy;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
        start local 2 // java.awt.font.TextLayout$CaretPolicy policy
         0: .line 1440
            iload 1 /* offset */
            iflt 1
            iload 1 /* offset */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 2
         1: .line 1441
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Offset out of bounds in TextLayout.getNextRightHit()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1444
      StackMap locals:
      StackMap stack:
            aload 2 /* policy */
            ifnonnull 4
         3: .line 1445
            new java.lang.IllegalArgumentException
            dup
            ldc "Null CaretPolicy passed to TextLayout.getNextRightHit()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1448
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            invokestatic java.awt.font.TextHitInfo.afterOffset:(I)Ljava/awt/font/TextHitInfo;
            astore 3 /* hit1 */
        start local 3 // java.awt.font.TextHitInfo hit1
         5: .line 1449
            aload 3 /* hit1 */
            invokevirtual java.awt.font.TextHitInfo.getOtherHit:()Ljava/awt/font/TextHitInfo;
            astore 4 /* hit2 */
        start local 4 // java.awt.font.TextHitInfo hit2
         6: .line 1451
            aload 0 /* this */
            aload 2 /* policy */
            aload 3 /* hit1 */
            aload 4 /* hit2 */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout$CaretPolicy.getStrongCaret:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextLayout;)Ljava/awt/font/TextHitInfo;
            invokevirtual java.awt.font.TextLayout.getNextRightHit:(Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
            astore 5 /* nextHit */
        start local 5 // java.awt.font.TextHitInfo nextHit
         7: .line 1453
            aload 5 /* nextHit */
            ifnull 10
         8: .line 1454
            aload 0 /* this */
            aload 5 /* nextHit */
            invokevirtual java.awt.font.TextLayout.getVisualOtherHit:(Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
            astore 6 /* otherHit */
        start local 6 // java.awt.font.TextHitInfo otherHit
         9: .line 1455
            aload 2 /* policy */
            aload 6 /* otherHit */
            aload 5 /* nextHit */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout$CaretPolicy.getStrongCaret:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextLayout;)Ljava/awt/font/TextHitInfo;
            areturn
        end local 6 // java.awt.font.TextHitInfo otherHit
        10: .line 1458
      StackMap locals: java.awt.font.TextHitInfo java.awt.font.TextHitInfo java.awt.font.TextHitInfo
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.awt.font.TextHitInfo nextHit
        end local 4 // java.awt.font.TextHitInfo hit2
        end local 3 // java.awt.font.TextHitInfo hit1
        end local 2 // java.awt.font.TextLayout$CaretPolicy policy
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljava/awt/font/TextLayout;
            0   11     1    offset  I
            0   11     2    policy  Ljava/awt/font/TextLayout$CaretPolicy;
            5   11     3      hit1  Ljava/awt/font/TextHitInfo;
            6   11     4      hit2  Ljava/awt/font/TextHitInfo;
            7   11     5   nextHit  Ljava/awt/font/TextHitInfo;
            9   10     6  otherHit  Ljava/awt/font/TextHitInfo;
    MethodParameters:
        Name  Flags
      offset  
      policy  

  public java.awt.font.TextHitInfo getNextRightHit(int);
    descriptor: (I)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
         0: .line 1477
            aload 0 /* this */
            iload 1 /* offset */
            getstatic java.awt.font.TextLayout.DEFAULT_CARET_POLICY:Ljava/awt/font/TextLayout$CaretPolicy;
            invokevirtual java.awt.font.TextLayout.getNextRightHit:(ILjava/awt/font/TextLayout$CaretPolicy;)Ljava/awt/font/TextHitInfo;
            areturn
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/awt/font/TextLayout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public java.awt.font.TextHitInfo getNextLeftHit(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1490
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1491
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1493
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 2 /* caret */
        start local 2 // int caret
         3: .line 1495
            iload 2 /* caret */
            ifne 5
         4: .line 1496
            aconst_null
            areturn
         5: .line 1500
      StackMap locals: int
      StackMap stack:
            iinc 2 /* caret */ -1
         6: .line 1501
            aload 0 /* this */
            iload 2 /* caret */
            invokevirtual java.awt.font.TextLayout.caretIsValid:(I)Z
            ifeq 5
         7: .line 1503
            aload 0 /* this */
            iload 2 /* caret */
            invokevirtual java.awt.font.TextLayout.caretToHit:(I)Ljava/awt/font/TextHitInfo;
            areturn
        end local 2 // int caret
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljava/awt/font/TextLayout;
            0    8     1    hit  Ljava/awt/font/TextHitInfo;
            3    8     2  caret  I
    MethodParameters:
      Name  Flags
      hit   

  public java.awt.font.TextHitInfo getNextLeftHit(int, java.awt.font.TextLayout$CaretPolicy);
    descriptor: (ILjava/awt/font/TextLayout$CaretPolicy;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
        start local 2 // java.awt.font.TextLayout$CaretPolicy policy
         0: .line 1522
            aload 2 /* policy */
            ifnonnull 2
         1: .line 1523
            new java.lang.IllegalArgumentException
            dup
            ldc "Null CaretPolicy passed to TextLayout.getNextLeftHit()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1526
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            iflt 3
            iload 1 /* offset */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 4
         3: .line 1527
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Offset out of bounds in TextLayout.getNextLeftHit()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1530
      StackMap locals:
      StackMap stack:
            iload 1 /* offset */
            invokestatic java.awt.font.TextHitInfo.afterOffset:(I)Ljava/awt/font/TextHitInfo;
            astore 3 /* hit1 */
        start local 3 // java.awt.font.TextHitInfo hit1
         5: .line 1531
            aload 3 /* hit1 */
            invokevirtual java.awt.font.TextHitInfo.getOtherHit:()Ljava/awt/font/TextHitInfo;
            astore 4 /* hit2 */
        start local 4 // java.awt.font.TextHitInfo hit2
         6: .line 1533
            aload 0 /* this */
            aload 2 /* policy */
            aload 3 /* hit1 */
            aload 4 /* hit2 */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout$CaretPolicy.getStrongCaret:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextLayout;)Ljava/awt/font/TextHitInfo;
            invokevirtual java.awt.font.TextLayout.getNextLeftHit:(Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
            astore 5 /* nextHit */
        start local 5 // java.awt.font.TextHitInfo nextHit
         7: .line 1535
            aload 5 /* nextHit */
            ifnull 10
         8: .line 1536
            aload 0 /* this */
            aload 5 /* nextHit */
            invokevirtual java.awt.font.TextLayout.getVisualOtherHit:(Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
            astore 6 /* otherHit */
        start local 6 // java.awt.font.TextHitInfo otherHit
         9: .line 1537
            aload 2 /* policy */
            aload 6 /* otherHit */
            aload 5 /* nextHit */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout$CaretPolicy.getStrongCaret:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextLayout;)Ljava/awt/font/TextHitInfo;
            areturn
        end local 6 // java.awt.font.TextHitInfo otherHit
        10: .line 1540
      StackMap locals: java.awt.font.TextHitInfo java.awt.font.TextHitInfo java.awt.font.TextHitInfo
      StackMap stack:
            aconst_null
            areturn
        end local 5 // java.awt.font.TextHitInfo nextHit
        end local 4 // java.awt.font.TextHitInfo hit2
        end local 3 // java.awt.font.TextHitInfo hit1
        end local 2 // java.awt.font.TextLayout$CaretPolicy policy
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljava/awt/font/TextLayout;
            0   11     1    offset  I
            0   11     2    policy  Ljava/awt/font/TextLayout$CaretPolicy;
            5   11     3      hit1  Ljava/awt/font/TextHitInfo;
            6   11     4      hit2  Ljava/awt/font/TextHitInfo;
            7   11     5   nextHit  Ljava/awt/font/TextHitInfo;
            9   10     6  otherHit  Ljava/awt/font/TextHitInfo;
    MethodParameters:
        Name  Flags
      offset  
      policy  

  public java.awt.font.TextHitInfo getNextLeftHit(int);
    descriptor: (I)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
         0: .line 1559
            aload 0 /* this */
            iload 1 /* offset */
            getstatic java.awt.font.TextLayout.DEFAULT_CARET_POLICY:Ljava/awt/font/TextLayout$CaretPolicy;
            invokevirtual java.awt.font.TextLayout.getNextLeftHit:(ILjava/awt/font/TextLayout$CaretPolicy;)Ljava/awt/font/TextHitInfo;
            areturn
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/awt/font/TextLayout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  public java.awt.font.TextHitInfo getVisualOtherHit(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1570
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1571
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1573
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            istore 2 /* hitCharIndex */
        start local 2 // int hitCharIndex
         3: .line 1578
            iload 2 /* hitCharIndex */
            iconst_m1
            if_icmpeq 4
            iload 2 /* hitCharIndex */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 20
         4: .line 1581
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            iload 2 /* hitCharIndex */
            iconst_m1
            if_icmpne 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int
      StackMap stack: int int
         6: if_icmpne 9
         7: .line 1582
            iconst_0
            istore 5 /* visIndex */
        start local 5 // int visIndex
         8: .line 1583
            goto 10
        end local 5 // int visIndex
         9: .line 1585
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            istore 5 /* visIndex */
        start local 5 // int visIndex
        10: .line 1588
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int top top int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 5 /* visIndex */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 3 /* charIndex */
        start local 3 // int charIndex
        11: .line 1590
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            iload 2 /* hitCharIndex */
            iconst_m1
            if_icmpne 12
            iconst_1
            goto 13
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int int top int
      StackMap stack: int
        12: iconst_0
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int int top int
      StackMap stack: int int
        13: if_icmpne 16
        14: .line 1592
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 3 /* charIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            istore 4 /* leading */
        start local 4 // boolean leading
        15: .line 1593
            goto 39
        end local 4 // boolean leading
        16: .line 1596
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 3 /* charIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            ifeq 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_1
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* leading */
        end local 5 // int visIndex
        start local 4 // boolean leading
        19: .line 1598
            goto 39
        end local 4 // boolean leading
        end local 3 // int charIndex
        20: .line 1601
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* hitCharIndex */
            invokevirtual java.awt.font.TextLine.logicalToVisual:(I)I
            istore 5 /* visIndex */
        start local 5 // int visIndex
        21: .line 1604
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 2 /* hitCharIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            if_icmpne 25
        22: .line 1605
            iinc 5 /* visIndex */ -1
        23: .line 1606
            iconst_0
            istore 6 /* movedToRight */
        start local 6 // boolean movedToRight
        24: .line 1607
            goto 27
        end local 6 // boolean movedToRight
        25: .line 1609
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int top top int
      StackMap stack:
            iinc 5 /* visIndex */ 1
        26: .line 1610
            iconst_1
            istore 6 /* movedToRight */
        start local 6 // boolean movedToRight
        27: .line 1613
      StackMap locals: int
      StackMap stack:
            iload 5 /* visIndex */
            iconst_m1
            if_icmple 33
            iload 5 /* visIndex */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpge 33
        28: .line 1614
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 5 /* visIndex */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            istore 3 /* charIndex */
        start local 3 // int charIndex
        29: .line 1615
            iload 6 /* movedToRight */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 3 /* charIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            if_icmpne 30
            iconst_1
            goto 31
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int int top int int
      StackMap stack:
        30: iconst_0
      StackMap locals:
      StackMap stack: int
        31: istore 4 /* leading */
        start local 4 // boolean leading
        32: .line 1616
            goto 39
        end local 4 // boolean leading
        end local 3 // int charIndex
        33: .line 1619
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int top top int int
      StackMap stack:
            iload 6 /* movedToRight */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            if_icmpne 34
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            goto 35
      StackMap locals:
      StackMap stack:
        34: iconst_m1
        35: .line 1618
      StackMap locals:
      StackMap stack: int
            istore 3 /* charIndex */
        start local 3 // int charIndex
        36: .line 1620
            iload 3 /* charIndex */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 37
            iconst_1
            goto 38
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int int top int int
      StackMap stack:
        37: iconst_0
      StackMap locals:
      StackMap stack: int
        38: istore 4 /* leading */
        end local 6 // boolean movedToRight
        end local 5 // int visIndex
        start local 4 // boolean leading
        39: .line 1624
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo int int int
      StackMap stack:
            iload 4 /* leading */
            ifeq 40
            iload 3 /* charIndex */
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            goto 41
        40: .line 1625
      StackMap locals:
      StackMap stack:
            iload 3 /* charIndex */
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
        41: .line 1624
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
            areturn
        end local 4 // boolean leading
        end local 3 // int charIndex
        end local 2 // int hitCharIndex
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   42     0          this  Ljava/awt/font/TextLayout;
            0   42     1           hit  Ljava/awt/font/TextHitInfo;
            3   42     2  hitCharIndex  I
           11   20     3     charIndex  I
           29   33     3     charIndex  I
           36   42     3     charIndex  I
           15   16     4       leading  Z
           19   20     4       leading  Z
           32   33     4       leading  Z
           39   42     4       leading  Z
            8    9     5      visIndex  I
           10   19     5      visIndex  I
           21   39     5      visIndex  I
           24   25     6  movedToRight  Z
           27   39     6  movedToRight  Z
    MethodParameters:
      Name  Flags
      hit   

  private double[] getCaretPath(java.awt.font.TextHitInfo, java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
        start local 2 // java.awt.geom.Rectangle2D bounds
         0: .line 1629
            aload 0 /* this */
            aload 1 /* hit */
            aload 2 /* bounds */
            invokevirtual java.awt.font.TextLayout.getCaretInfo:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[F
            astore 3 /* info */
        start local 3 // float[] info
         1: .line 1630
            iconst_4
            newarray 7
            dup
            iconst_0
            aload 3 /* info */
            iconst_2
            faload
            f2d
            dastore
            dup
            iconst_1
            aload 3 /* info */
            iconst_3
            faload
            f2d
            dastore
            dup
            iconst_2
            aload 3 /* info */
            iconst_4
            faload
            f2d
            dastore
            dup
            iconst_3
            aload 3 /* info */
            iconst_5
            faload
            f2d
            dastore
            areturn
        end local 3 // float[] info
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljava/awt/font/TextLayout;
            0    2     1     hit  Ljava/awt/font/TextHitInfo;
            0    2     2  bounds  Ljava/awt/geom/Rectangle2D;
            1    2     3    info  [F
    MethodParameters:
        Name  Flags
      hit     
      bounds  

  private double[] getCaretPath(int, java.awt.geom.Rectangle2D, boolean);
    descriptor: (ILjava/awt/geom/Rectangle2D;Z)[D
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=30, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int caret
        start local 2 // java.awt.geom.Rectangle2D bounds
        start local 3 // boolean clipToBounds
         0: .line 1645
            aload 0 /* this */
            iload 1 /* caret */
            aload 2 /* bounds */
            aconst_null
            invokevirtual java.awt.font.TextLayout.getCaretInfo:(ILjava/awt/geom/Rectangle2D;[F)[F
            astore 4 /* info */
        start local 4 // float[] info
         1: .line 1647
            aload 4 /* info */
            iconst_0
            faload
            f2d
            dstore 5 /* pos */
        start local 5 // double pos
         2: .line 1648
            aload 4 /* info */
            iconst_1
            faload
            f2d
            dstore 7 /* slope */
        start local 7 // double slope
         3: .line 1651
            ldc -3141.59
            dstore 17 /* x2 */
        start local 17 // double x2
         4: ldc -2.7
            dstore 19 /* y2 */
        start local 19 // double y2
         5: .line 1653
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dstore 21 /* left */
        start local 21 // double left
         6: .line 1654
            dload 21 /* left */
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            dadd
            dstore 23 /* right */
        start local 23 // double right
         7: .line 1655
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            dstore 25 /* top */
        start local 25 // double top
         8: .line 1656
            dload 25 /* top */
            aload 2 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            dadd
            dstore 27 /* bottom */
        start local 27 // double bottom
         9: .line 1658
            iconst_0
            istore 29 /* threePoints */
        start local 29 // boolean threePoints
        10: .line 1660
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 40
        11: .line 1662
            dload 7 /* slope */
            dconst_0
            dcmpl
            iflt 15
        12: .line 1663
            dload 21 /* left */
            dstore 9 /* x0 */
        start local 9 // double x0
        13: .line 1664
            dload 23 /* right */
            dstore 13 /* x1 */
        start local 13 // double x1
        14: .line 1665
            goto 17
        end local 13 // double x1
        end local 9 // double x0
        15: .line 1667
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double top top top top top top top top double double double double double double int
      StackMap stack:
            dload 21 /* left */
            dstore 13 /* x1 */
        start local 13 // double x1
        16: .line 1668
            dload 23 /* right */
            dstore 9 /* x0 */
        start local 9 // double x0
        17: .line 1671
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double double top top double top top double double double double double double int
      StackMap stack:
            dload 5 /* pos */
            dload 9 /* x0 */
            dload 7 /* slope */
            dmul
            dadd
            dstore 11 /* y0 */
        start local 11 // double y0
        18: .line 1672
            dload 5 /* pos */
            dload 13 /* x1 */
            dload 7 /* slope */
            dmul
            dadd
            dstore 15 /* y1 */
        start local 15 // double y1
        19: .line 1676
            iload 3 /* clipToBounds */
            ifeq 68
        20: .line 1677
            dload 11 /* y0 */
            dload 25 /* top */
            dcmpg
            ifge 31
        21: .line 1678
            dload 7 /* slope */
            dconst_0
            dcmpg
            ifle 22
            dload 15 /* y1 */
            dload 25 /* top */
            dcmpg
            ifgt 24
        22: .line 1679
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double double double double double double double double double double double int
      StackMap stack:
            dload 25 /* top */
            dup2
            dstore 15 /* y1 */
            dstore 11 /* y0 */
        23: .line 1680
            goto 68
        24: .line 1682
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* threePoints */
        25: .line 1683
            dload 25 /* top */
            dstore 11 /* y0 */
        26: .line 1684
            dload 25 /* top */
            dstore 19 /* y2 */
        27: .line 1685
            dload 13 /* x1 */
            dload 25 /* top */
            dload 15 /* y1 */
            dsub
            dload 7 /* slope */
            ddiv
            dadd
            dstore 17 /* x2 */
        28: .line 1686
            dload 15 /* y1 */
            dload 27 /* bottom */
            dcmpl
            ifle 68
        29: .line 1687
            dload 27 /* bottom */
            dstore 15 /* y1 */
        30: .line 1690
            goto 68
        31: .line 1691
      StackMap locals:
      StackMap stack:
            dload 15 /* y1 */
            dload 27 /* bottom */
            dcmpl
            ifle 68
        32: .line 1692
            dload 7 /* slope */
            dconst_0
            dcmpl
            ifge 33
            dload 11 /* y0 */
            dload 27 /* bottom */
            dcmpl
            iflt 35
        33: .line 1693
      StackMap locals:
      StackMap stack:
            dload 27 /* bottom */
            dup2
            dstore 15 /* y1 */
            dstore 11 /* y0 */
        34: .line 1694
            goto 68
        35: .line 1696
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* threePoints */
        36: .line 1697
            dload 27 /* bottom */
            dstore 15 /* y1 */
        37: .line 1698
            dload 27 /* bottom */
            dstore 19 /* y2 */
        38: .line 1699
            dload 9 /* x0 */
            dload 27 /* bottom */
            dload 13 /* x1 */
            dsub
            dload 7 /* slope */
            ddiv
            dadd
            dstore 17 /* x2 */
        39: .line 1704
            goto 68
        end local 15 // double y1
        end local 13 // double x1
        end local 11 // double y0
        end local 9 // double x0
        40: .line 1707
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double top top top top top top top top double double double double double double int
      StackMap stack:
            dload 7 /* slope */
            dconst_0
            dcmpl
            iflt 44
        41: .line 1708
            dload 27 /* bottom */
            dstore 11 /* y0 */
        start local 11 // double y0
        42: .line 1709
            dload 25 /* top */
            dstore 15 /* y1 */
        start local 15 // double y1
        43: .line 1710
            goto 46
        end local 15 // double y1
        end local 11 // double y0
        44: .line 1712
      StackMap locals:
      StackMap stack:
            dload 27 /* bottom */
            dstore 15 /* y1 */
        start local 15 // double y1
        45: .line 1713
            dload 25 /* top */
            dstore 11 /* y0 */
        start local 11 // double y0
        46: .line 1716
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double top top double top top double double double double double double double int
      StackMap stack:
            dload 5 /* pos */
            dload 11 /* y0 */
            dload 7 /* slope */
            dmul
            dsub
            dstore 9 /* x0 */
        start local 9 // double x0
        47: .line 1717
            dload 5 /* pos */
            dload 15 /* y1 */
            dload 7 /* slope */
            dmul
            dsub
            dstore 13 /* x1 */
        start local 13 // double x1
        48: .line 1721
            iload 3 /* clipToBounds */
            ifeq 68
        49: .line 1722
            dload 9 /* x0 */
            dload 21 /* left */
            dcmpg
            ifge 60
        50: .line 1723
            dload 7 /* slope */
            dconst_0
            dcmpg
            ifle 51
            dload 13 /* x1 */
            dload 21 /* left */
            dcmpg
            ifgt 53
        51: .line 1724
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D int float[] double double double double double double double double double double double double int
      StackMap stack:
            dload 21 /* left */
            dup2
            dstore 13 /* x1 */
            dstore 9 /* x0 */
        52: .line 1725
            goto 68
        53: .line 1727
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* threePoints */
        54: .line 1728
            dload 21 /* left */
            dstore 9 /* x0 */
        55: .line 1729
            dload 21 /* left */
            dstore 17 /* x2 */
        56: .line 1730
            dload 15 /* y1 */
            dload 21 /* left */
            dload 13 /* x1 */
            dsub
            dload 7 /* slope */
            ddiv
            dsub
            dstore 19 /* y2 */
        57: .line 1731
            dload 13 /* x1 */
            dload 23 /* right */
            dcmpl
            ifle 68
        58: .line 1732
            dload 23 /* right */
            dstore 13 /* x1 */
        59: .line 1735
            goto 68
        60: .line 1736
      StackMap locals:
      StackMap stack:
            dload 13 /* x1 */
            dload 23 /* right */
            dcmpl
            ifle 68
        61: .line 1737
            dload 7 /* slope */
            dconst_0
            dcmpl
            ifge 62
            dload 9 /* x0 */
            dload 23 /* right */
            dcmpl
            iflt 64
        62: .line 1738
      StackMap locals:
      StackMap stack:
            dload 23 /* right */
            dup2
            dstore 13 /* x1 */
            dstore 9 /* x0 */
        63: .line 1739
            goto 68
        64: .line 1741
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 29 /* threePoints */
        65: .line 1742
            dload 23 /* right */
            dstore 13 /* x1 */
        66: .line 1743
            dload 23 /* right */
            dstore 17 /* x2 */
        67: .line 1744
            dload 11 /* y0 */
            dload 23 /* right */
            dload 9 /* x0 */
            dsub
            dload 7 /* slope */
            ddiv
            dsub
            dstore 19 /* y2 */
        68: .line 1750
      StackMap locals:
      StackMap stack:
            iload 29 /* threePoints */
            ifeq 70
        69: .line 1751
            bipush 6
            newarray 7
            dup
            iconst_0
            dload 9 /* x0 */
            dastore
            dup
            iconst_1
            dload 11 /* y0 */
            dastore
            dup
            iconst_2
            dload 17 /* x2 */
            dastore
            dup
            iconst_3
            dload 19 /* y2 */
            dastore
            dup
            iconst_4
            dload 13 /* x1 */
            dastore
            dup
            iconst_5
            dload 15 /* y1 */
            dastore
            goto 71
        70: .line 1752
      StackMap locals:
      StackMap stack:
            iconst_4
            newarray 7
            dup
            iconst_0
            dload 9 /* x0 */
            dastore
            dup
            iconst_1
            dload 11 /* y0 */
            dastore
            dup
            iconst_2
            dload 13 /* x1 */
            dastore
            dup
            iconst_3
            dload 15 /* y1 */
            dastore
        71: .line 1750
      StackMap locals:
      StackMap stack: double[]
            areturn
        end local 29 // boolean threePoints
        end local 27 // double bottom
        end local 25 // double top
        end local 23 // double right
        end local 21 // double left
        end local 19 // double y2
        end local 17 // double x2
        end local 15 // double y1
        end local 13 // double x1
        end local 11 // double y0
        end local 9 // double x0
        end local 7 // double slope
        end local 5 // double pos
        end local 4 // float[] info
        end local 3 // boolean clipToBounds
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // int caret
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   72     0          this  Ljava/awt/font/TextLayout;
            0   72     1         caret  I
            0   72     2        bounds  Ljava/awt/geom/Rectangle2D;
            0   72     3  clipToBounds  Z
            1   72     4          info  [F
            2   72     5           pos  D
            3   72     7         slope  D
           13   15     9            x0  D
           17   40     9            x0  D
           47   72     9            x0  D
           18   40    11            y0  D
           42   44    11            y0  D
           46   72    11            y0  D
           14   15    13            x1  D
           16   40    13            x1  D
           48   72    13            x1  D
           19   40    15            y1  D
           43   44    15            y1  D
           45   72    15            y1  D
            4   72    17            x2  D
            5   72    19            y2  D
            6   72    21          left  D
            7   72    23         right  D
            8   72    25           top  D
            9   72    27        bottom  D
           10   72    29   threePoints  Z
    MethodParameters:
              Name  Flags
      caret         
      bounds        
      clipToBounds  

  private static java.awt.geom.GeneralPath pathToShape(double[], boolean, sun.font.LayoutPathImpl);
    descriptor: ([DZLsun/font/LayoutPathImpl;)Ljava/awt/geom/GeneralPath;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // double[] path
        start local 1 // boolean close
        start local 2 // sun.font.LayoutPathImpl lp
         0: .line 1757
            new java.awt.geom.GeneralPath
            dup
            iconst_0
            aload 0 /* path */
            arraylength
            invokespecial java.awt.geom.GeneralPath.<init>:(II)V
            astore 3 /* result */
        start local 3 // java.awt.geom.GeneralPath result
         1: .line 1758
            aload 3 /* result */
            aload 0 /* path */
            iconst_0
            daload
            d2f
            aload 0 /* path */
            iconst_1
            daload
            d2f
            invokevirtual java.awt.geom.GeneralPath.moveTo:(FF)V
         2: .line 1759
            iconst_2
            istore 4 /* i */
        start local 4 // int i
         3: goto 6
         4: .line 1760
      StackMap locals: java.awt.geom.GeneralPath int
      StackMap stack:
            aload 3 /* result */
            aload 0 /* path */
            iload 4 /* i */
            daload
            d2f
            aload 0 /* path */
            iload 4 /* i */
            iconst_1
            iadd
            daload
            d2f
            invokevirtual java.awt.geom.GeneralPath.lineTo:(FF)V
         5: .line 1759
            iinc 4 /* i */ 2
      StackMap locals:
      StackMap stack:
         6: iload 4 /* i */
            aload 0 /* path */
            arraylength
            if_icmplt 4
        end local 4 // int i
         7: .line 1762
            iload 1 /* close */
            ifeq 9
         8: .line 1763
            aload 3 /* result */
            invokevirtual java.awt.geom.GeneralPath.closePath:()V
         9: .line 1766
      StackMap locals:
      StackMap stack:
            aload 2 /* lp */
            ifnull 11
        10: .line 1767
            aload 2 /* lp */
            aload 3 /* result */
            invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            checkcast java.awt.geom.GeneralPath
            astore 3 /* result */
        11: .line 1769
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.awt.geom.GeneralPath result
        end local 2 // sun.font.LayoutPathImpl lp
        end local 1 // boolean close
        end local 0 // double[] path
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    path  [D
            0   12     1   close  Z
            0   12     2      lp  Lsun/font/LayoutPathImpl;
            1   12     3  result  Ljava/awt/geom/GeneralPath;
            3    7     4       i  I
    MethodParameters:
       Name  Flags
      path   
      close  
      lp     

  public java.awt.Shape getCaretShape(java.awt.font.TextHitInfo, java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
        start local 2 // java.awt.geom.Rectangle2D bounds
         0: .line 1783
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1784
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 1786
            aload 2 /* bounds */
            ifnonnull 4
         3: .line 1787
            new java.lang.IllegalArgumentException
            dup
            ldc "Null Rectangle2D passed to TextLayout.getCaret()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1790
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* hit */
            aload 2 /* bounds */
            invokevirtual java.awt.font.TextLayout.getCaretPath:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[D
            iconst_0
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            invokestatic java.awt.font.TextLayout.pathToShape:([DZLsun/font/LayoutPathImpl;)Ljava/awt/geom/GeneralPath;
            areturn
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/awt/font/TextLayout;
            0    5     1     hit  Ljava/awt/font/TextHitInfo;
            0    5     2  bounds  Ljava/awt/geom/Rectangle2D;
    MethodParameters:
        Name  Flags
      hit     
      bounds  

  public java.awt.Shape getCaretShape(java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
         0: .line 1802
            aload 0 /* this */
            aload 1 /* hit */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.font.TextLayout.getCaretShape:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
            areturn
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;
            0    1     1   hit  Ljava/awt/font/TextHitInfo;
    MethodParameters:
      Name  Flags
      hit   

  private java.awt.font.TextHitInfo getStrongHit(java.awt.font.TextHitInfo, java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;)Ljava/awt/font/TextHitInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit1
        start local 2 // java.awt.font.TextHitInfo hit2
         0: .line 1819
            aload 0 /* this */
            aload 1 /* hit1 */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            invokevirtual java.awt.font.TextLayout.getCharacterLevel:(I)B
            istore 3 /* hit1Level */
        start local 3 // byte hit1Level
         1: .line 1820
            aload 0 /* this */
            aload 2 /* hit2 */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            invokevirtual java.awt.font.TextLayout.getCharacterLevel:(I)B
            istore 4 /* hit2Level */
        start local 4 // byte hit2Level
         2: .line 1822
            iload 3 /* hit1Level */
            iload 4 /* hit2Level */
            if_icmpne 6
         3: .line 1823
            aload 2 /* hit2 */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            ifeq 5
            aload 1 /* hit1 */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            ifne 5
         4: .line 1824
            aload 2 /* hit2 */
            areturn
         5: .line 1827
      StackMap locals: int int
      StackMap stack:
            aload 1 /* hit1 */
            areturn
         6: .line 1831
      StackMap locals:
      StackMap stack:
            iload 3 /* hit1Level */
            iload 4 /* hit2Level */
            if_icmpge 7
            aload 1 /* hit1 */
            goto 8
      StackMap locals:
      StackMap stack:
         7: aload 2 /* hit2 */
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
         8: areturn
        end local 4 // byte hit2Level
        end local 3 // byte hit1Level
        end local 2 // java.awt.font.TextHitInfo hit2
        end local 1 // java.awt.font.TextHitInfo hit1
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Ljava/awt/font/TextLayout;
            0    9     1       hit1  Ljava/awt/font/TextHitInfo;
            0    9     2       hit2  Ljava/awt/font/TextHitInfo;
            1    9     3  hit1Level  B
            2    9     4  hit2Level  B
    MethodParameters:
      Name  Flags
      hit1  
      hit2  

  public byte getCharacterLevel(int);
    descriptor: (I)B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int index
         0: .line 1845
            iload 1 /* index */
            iconst_m1
            if_icmplt 1
            iload 1 /* index */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 2
         1: .line 1846
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Index is out of range in getCharacterLevel."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1849
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         3: .line 1850
            iload 1 /* index */
            iconst_m1
            if_icmpeq 4
            iload 1 /* index */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 7
         4: .line 1851
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: i2b
            ireturn
         7: .line 1854
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 1 /* index */
            invokevirtual java.awt.font.TextLine.getCharLevel:(I)B
            ireturn
        end local 1 // int index
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljava/awt/font/TextLayout;
            0    8     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public java.awt.Shape[] getCaretShapes(int, java.awt.geom.Rectangle2D, java.awt.font.TextLayout$CaretPolicy);
    descriptor: (ILjava/awt/geom/Rectangle2D;Ljava/awt/font/TextLayout$CaretPolicy;)[Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=14, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
        start local 2 // java.awt.geom.Rectangle2D bounds
        start local 3 // java.awt.font.TextLayout$CaretPolicy policy
         0: .line 1870
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 1872
            iload 1 /* offset */
            iflt 2
            iload 1 /* offset */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 3
         2: .line 1873
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Offset out of bounds in TextLayout.getCaretShapes()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 1876
      StackMap locals:
      StackMap stack:
            aload 2 /* bounds */
            ifnonnull 5
         4: .line 1877
            new java.lang.IllegalArgumentException
            dup
            ldc "Null Rectangle2D passed to TextLayout.getCaretShapes()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 1880
      StackMap locals:
      StackMap stack:
            aload 3 /* policy */
            ifnonnull 7
         6: .line 1881
            new java.lang.IllegalArgumentException
            dup
            ldc "Null CaretPolicy passed to TextLayout.getCaretShapes()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1884
      StackMap locals:
      StackMap stack:
            iconst_2
            anewarray java.awt.Shape
            astore 4 /* result */
        start local 4 // java.awt.Shape[] result
         8: .line 1886
            iload 1 /* offset */
            invokestatic java.awt.font.TextHitInfo.afterOffset:(I)Ljava/awt/font/TextHitInfo;
            astore 5 /* hit */
        start local 5 // java.awt.font.TextHitInfo hit
         9: .line 1888
            aload 0 /* this */
            aload 5 /* hit */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 6 /* hitCaret */
        start local 6 // int hitCaret
        10: .line 1890
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 7 /* lp */
        start local 7 // sun.font.LayoutPathImpl lp
        11: .line 1891
            aload 0 /* this */
            aload 5 /* hit */
            aload 2 /* bounds */
            invokevirtual java.awt.font.TextLayout.getCaretPath:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[D
            iconst_0
            aload 7 /* lp */
            invokestatic java.awt.font.TextLayout.pathToShape:([DZLsun/font/LayoutPathImpl;)Ljava/awt/geom/GeneralPath;
            astore 8 /* hitShape */
        start local 8 // java.awt.Shape hitShape
        12: .line 1892
            aload 5 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getOtherHit:()Ljava/awt/font/TextHitInfo;
            astore 9 /* otherHit */
        start local 9 // java.awt.font.TextHitInfo otherHit
        13: .line 1893
            aload 0 /* this */
            aload 9 /* otherHit */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 10 /* otherCaret */
        start local 10 // int otherCaret
        14: .line 1895
            iload 6 /* hitCaret */
            iload 10 /* otherCaret */
            if_icmpne 17
        15: .line 1896
            aload 4 /* result */
            iconst_0
            aload 8 /* hitShape */
            aastore
        16: .line 1897
            goto 26
        17: .line 1899
      StackMap locals: java.awt.font.TextLayout int java.awt.geom.Rectangle2D java.awt.font.TextLayout$CaretPolicy java.awt.Shape[] java.awt.font.TextHitInfo int sun.font.LayoutPathImpl java.awt.Shape java.awt.font.TextHitInfo int
      StackMap stack:
            aload 0 /* this */
            aload 9 /* otherHit */
            aload 2 /* bounds */
            invokevirtual java.awt.font.TextLayout.getCaretPath:(Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)[D
            iconst_0
            aload 7 /* lp */
            invokestatic java.awt.font.TextLayout.pathToShape:([DZLsun/font/LayoutPathImpl;)Ljava/awt/geom/GeneralPath;
            astore 11 /* otherShape */
        start local 11 // java.awt.Shape otherShape
        18: .line 1901
            aload 3 /* policy */
            aload 5 /* hit */
            aload 9 /* otherHit */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout$CaretPolicy.getStrongCaret:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextLayout;)Ljava/awt/font/TextHitInfo;
            astore 12 /* strongHit */
        start local 12 // java.awt.font.TextHitInfo strongHit
        19: .line 1902
            aload 12 /* strongHit */
            aload 5 /* hit */
            invokevirtual java.awt.font.TextHitInfo.equals:(Ljava/awt/font/TextHitInfo;)Z
            istore 13 /* hitIsStrong */
        start local 13 // boolean hitIsStrong
        20: .line 1904
            iload 13 /* hitIsStrong */
            ifeq 24
        21: .line 1905
            aload 4 /* result */
            iconst_0
            aload 8 /* hitShape */
            aastore
        22: .line 1906
            aload 4 /* result */
            iconst_1
            aload 11 /* otherShape */
            aastore
        23: .line 1907
            goto 26
        24: .line 1909
      StackMap locals: java.awt.Shape java.awt.font.TextHitInfo int
      StackMap stack:
            aload 4 /* result */
            iconst_0
            aload 11 /* otherShape */
            aastore
        25: .line 1910
            aload 4 /* result */
            iconst_1
            aload 8 /* hitShape */
            aastore
        end local 13 // boolean hitIsStrong
        end local 12 // java.awt.font.TextHitInfo strongHit
        end local 11 // java.awt.Shape otherShape
        26: .line 1914
      StackMap locals:
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 10 // int otherCaret
        end local 9 // java.awt.font.TextHitInfo otherHit
        end local 8 // java.awt.Shape hitShape
        end local 7 // sun.font.LayoutPathImpl lp
        end local 6 // int hitCaret
        end local 5 // java.awt.font.TextHitInfo hit
        end local 4 // java.awt.Shape[] result
        end local 3 // java.awt.font.TextLayout$CaretPolicy policy
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   27     0         this  Ljava/awt/font/TextLayout;
            0   27     1       offset  I
            0   27     2       bounds  Ljava/awt/geom/Rectangle2D;
            0   27     3       policy  Ljava/awt/font/TextLayout$CaretPolicy;
            8   27     4       result  [Ljava/awt/Shape;
            9   27     5          hit  Ljava/awt/font/TextHitInfo;
           10   27     6     hitCaret  I
           11   27     7           lp  Lsun/font/LayoutPathImpl;
           12   27     8     hitShape  Ljava/awt/Shape;
           13   27     9     otherHit  Ljava/awt/font/TextHitInfo;
           14   27    10   otherCaret  I
           18   26    11   otherShape  Ljava/awt/Shape;
           19   26    12    strongHit  Ljava/awt/font/TextHitInfo;
           20   26    13  hitIsStrong  Z
    MethodParameters:
        Name  Flags
      offset  
      bounds  
      policy  

  public java.awt.Shape[] getCaretShapes(int, java.awt.geom.Rectangle2D);
    descriptor: (ILjava/awt/geom/Rectangle2D;)[Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
        start local 2 // java.awt.geom.Rectangle2D bounds
         0: .line 1930
            aload 0 /* this */
            iload 1 /* offset */
            aload 2 /* bounds */
            getstatic java.awt.font.TextLayout.DEFAULT_CARET_POLICY:Ljava/awt/font/TextLayout$CaretPolicy;
            invokevirtual java.awt.font.TextLayout.getCaretShapes:(ILjava/awt/geom/Rectangle2D;Ljava/awt/font/TextLayout$CaretPolicy;)[Ljava/awt/Shape;
            areturn
        end local 2 // java.awt.geom.Rectangle2D bounds
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/awt/font/TextLayout;
            0    1     1  offset  I
            0    1     2  bounds  Ljava/awt/geom/Rectangle2D;
    MethodParameters:
        Name  Flags
      offset  
      bounds  

  public java.awt.Shape[] getCaretShapes(int);
    descriptor: (I)[Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int offset
         0: .line 1945
            aload 0 /* this */
            iload 1 /* offset */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            getstatic java.awt.font.TextLayout.DEFAULT_CARET_POLICY:Ljava/awt/font/TextLayout$CaretPolicy;
            invokevirtual java.awt.font.TextLayout.getCaretShapes:(ILjava/awt/geom/Rectangle2D;Ljava/awt/font/TextLayout$CaretPolicy;)[Ljava/awt/Shape;
            areturn
        end local 1 // int offset
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljava/awt/font/TextLayout;
            0    1     1  offset  I
    MethodParameters:
        Name  Flags
      offset  

  private java.awt.geom.GeneralPath boundingShape(double[], double[]);
    descriptor: ([D[D)Ljava/awt/geom/GeneralPath;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=9, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // double[] path0
        start local 2 // double[] path1
         0: .line 1960
            aload 1 /* path0 */
            iconst_0
            aconst_null
            invokestatic java.awt.font.TextLayout.pathToShape:([DZLsun/font/LayoutPathImpl;)Ljava/awt/geom/GeneralPath;
            astore 3 /* result */
        start local 3 // java.awt.geom.GeneralPath result
         1: .line 1964
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 10
         2: .line 1965
            aload 1 /* path0 */
            iconst_1
            daload
            aload 1 /* path0 */
            aload 1 /* path0 */
            arraylength
            iconst_1
            isub
            daload
            dcmpl
            ifle 3
            iconst_1
            goto 4
      StackMap locals: java.awt.geom.GeneralPath
      StackMap stack:
         3: iconst_0
         4: .line 1966
      StackMap locals:
      StackMap stack: int
            aload 2 /* path1 */
            iconst_1
            daload
            aload 2 /* path1 */
            aload 2 /* path1 */
            arraylength
            iconst_1
            isub
            daload
            dcmpl
            ifle 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack: int
         5: iconst_0
         6: .line 1965
      StackMap locals: java.awt.font.TextLayout double[] double[] java.awt.geom.GeneralPath
      StackMap stack: int int
            if_icmpne 7
            iconst_1
            goto 8
      StackMap locals:
      StackMap stack:
         7: iconst_0
      StackMap locals:
      StackMap stack: int
         8: istore 4 /* sameDirection */
        start local 4 // boolean sameDirection
         9: .line 1967
            goto 17
        end local 4 // boolean sameDirection
        10: .line 1969
      StackMap locals:
      StackMap stack:
            aload 1 /* path0 */
            iconst_0
            daload
            aload 1 /* path0 */
            aload 1 /* path0 */
            arraylength
            iconst_2
            isub
            daload
            dcmpl
            ifle 11
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
        12: .line 1970
      StackMap locals:
      StackMap stack: int
            aload 2 /* path1 */
            iconst_0
            daload
            aload 2 /* path1 */
            aload 2 /* path1 */
            arraylength
            iconst_2
            isub
            daload
            dcmpl
            ifle 13
            iconst_1
            goto 14
      StackMap locals:
      StackMap stack: int
        13: iconst_0
        14: .line 1969
      StackMap locals: java.awt.font.TextLayout double[] double[] java.awt.geom.GeneralPath
      StackMap stack: int int
            if_icmpne 15
            iconst_1
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_0
      StackMap locals:
      StackMap stack: int
        16: istore 4 /* sameDirection */
        start local 4 // boolean sameDirection
        17: .line 1977
      StackMap locals: int
      StackMap stack:
            iload 4 /* sameDirection */
            ifeq 22
        18: .line 1978
            aload 2 /* path1 */
            arraylength
            iconst_2
            isub
            istore 5 /* start */
        start local 5 // int start
        19: .line 1979
            bipush -2
            istore 6 /* limit */
        start local 6 // int limit
        20: .line 1980
            bipush -2
            istore 7 /* increment */
        start local 7 // int increment
        21: .line 1981
            goto 25
        end local 7 // int increment
        end local 6 // int limit
        end local 5 // int start
        22: .line 1983
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* start */
        start local 5 // int start
        23: .line 1984
            aload 2 /* path1 */
            arraylength
            istore 6 /* limit */
        start local 6 // int limit
        24: .line 1985
            iconst_2
            istore 7 /* increment */
        start local 7 // int increment
        25: .line 1988
      StackMap locals: int int int
      StackMap stack:
            iload 5 /* start */
            istore 8 /* i */
        start local 8 // int i
        26: goto 29
        27: .line 1989
      StackMap locals: int
      StackMap stack:
            aload 3 /* result */
            aload 2 /* path1 */
            iload 8 /* i */
            daload
            d2f
            aload 2 /* path1 */
            iload 8 /* i */
            iconst_1
            iadd
            daload
            d2f
            invokevirtual java.awt.geom.GeneralPath.lineTo:(FF)V
        28: .line 1988
            iload 8 /* i */
            iload 7 /* increment */
            iadd
            istore 8 /* i */
      StackMap locals:
      StackMap stack:
        29: iload 8 /* i */
            iload 6 /* limit */
            if_icmpne 27
        end local 8 // int i
        30: .line 1992
            aload 3 /* result */
            invokevirtual java.awt.geom.GeneralPath.closePath:()V
        31: .line 1994
            aload 3 /* result */
            areturn
        end local 7 // int increment
        end local 6 // int limit
        end local 5 // int start
        end local 4 // boolean sameDirection
        end local 3 // java.awt.geom.GeneralPath result
        end local 2 // double[] path1
        end local 1 // double[] path0
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   32     0           this  Ljava/awt/font/TextLayout;
            0   32     1          path0  [D
            0   32     2          path1  [D
            1   32     3         result  Ljava/awt/geom/GeneralPath;
            9   10     4  sameDirection  Z
           17   32     4  sameDirection  Z
           19   22     5          start  I
           23   32     5          start  I
           20   22     6          limit  I
           24   32     6          limit  I
           21   22     7      increment  I
           25   32     7      increment  I
           26   30     8              i  I
    MethodParameters:
       Name  Flags
      path0  
      path1  

  private java.awt.geom.GeneralPath caretBoundingShape(int, int, java.awt.geom.Rectangle2D);
    descriptor: (IILjava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int caret0
        start local 2 // int caret1
        start local 3 // java.awt.geom.Rectangle2D bounds
         0: .line 2003
            iload 1 /* caret0 */
            iload 2 /* caret1 */
            if_icmple 4
         1: .line 2004
            iload 1 /* caret0 */
            istore 4 /* temp */
        start local 4 // int temp
         2: .line 2005
            iload 2 /* caret1 */
            istore 1 /* caret0 */
         3: .line 2006
            iload 4 /* temp */
            istore 2 /* caret1 */
        end local 4 // int temp
         4: .line 2009
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            iload 1 /* caret0 */
            aload 3 /* bounds */
            iconst_1
            invokevirtual java.awt.font.TextLayout.getCaretPath:(ILjava/awt/geom/Rectangle2D;Z)[D
         5: .line 2010
            aload 0 /* this */
            iload 2 /* caret1 */
            aload 3 /* bounds */
            iconst_1
            invokevirtual java.awt.font.TextLayout.getCaretPath:(ILjava/awt/geom/Rectangle2D;Z)[D
         6: .line 2009
            invokevirtual java.awt.font.TextLayout.boundingShape:([D[D)Ljava/awt/geom/GeneralPath;
            areturn
        end local 3 // java.awt.geom.Rectangle2D bounds
        end local 2 // int caret1
        end local 1 // int caret0
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljava/awt/font/TextLayout;
            0    7     1  caret0  I
            0    7     2  caret1  I
            0    7     3  bounds  Ljava/awt/geom/Rectangle2D;
            2    4     4    temp  I
    MethodParameters:
        Name  Flags
      caret0  
      caret1  
      bounds  

  private java.awt.geom.GeneralPath leftShape(java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.geom.Rectangle2D bounds
         0: .line 2021
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 6
         1: .line 2022
            iconst_4
            newarray 7
            dup
            iconst_0
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dastore
            dup
            iconst_1
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            dastore
            dup
            iconst_2
         2: .line 2023
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            dadd
            dastore
            dup
            iconst_3
         3: .line 2024
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            dastore
         4: .line 2022
            astore 2 /* path0 */
        start local 2 // double[] path0
         5: .line 2025
            goto 10
        end local 2 // double[] path0
         6: .line 2026
      StackMap locals:
      StackMap stack:
            iconst_4
            newarray 7
            dup
            iconst_0
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dastore
            dup
            iconst_1
         7: .line 2027
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            dadd
            dastore
            dup
            iconst_2
         8: .line 2028
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dastore
            dup
            iconst_3
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            dastore
         9: .line 2026
            astore 2 /* path0 */
        start local 2 // double[] path0
        10: .line 2031
      StackMap locals: double[]
      StackMap stack:
            aload 0 /* this */
            iconst_0
            aload 1 /* bounds */
            iconst_1
            invokevirtual java.awt.font.TextLayout.getCaretPath:(ILjava/awt/geom/Rectangle2D;Z)[D
            astore 3 /* path1 */
        start local 3 // double[] path1
        11: .line 2033
            aload 0 /* this */
            aload 2 /* path0 */
            aload 3 /* path1 */
            invokevirtual java.awt.font.TextLayout.boundingShape:([D[D)Ljava/awt/geom/GeneralPath;
            areturn
        end local 3 // double[] path1
        end local 2 // double[] path0
        end local 1 // java.awt.geom.Rectangle2D bounds
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Ljava/awt/font/TextLayout;
            0   12     1  bounds  Ljava/awt/geom/Rectangle2D;
            5    6     2   path0  [D
           10   12     2   path0  [D
           11   12     3   path1  [D
    MethodParameters:
        Name  Flags
      bounds  

  private java.awt.geom.GeneralPath rightShape(java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.geom.Rectangle2D bounds
         0: .line 2042
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 8
         1: .line 2043
            iconst_4
            newarray 7
            dup
            iconst_0
         2: .line 2044
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            dastore
            dup
            iconst_1
         3: .line 2045
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            dadd
            dastore
            dup
            iconst_2
         4: .line 2046
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            dadd
            dastore
            dup
            iconst_3
         5: .line 2047
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            dadd
            dastore
         6: .line 2043
            astore 2 /* path1 */
        start local 2 // double[] path1
         7: .line 2049
            goto 14
        end local 2 // double[] path1
         8: .line 2050
      StackMap locals:
      StackMap stack:
            iconst_4
            newarray 7
            dup
            iconst_0
         9: .line 2051
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            dadd
            dastore
            dup
            iconst_1
        10: .line 2052
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            dadd
            dastore
            dup
            iconst_2
        11: .line 2053
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            dadd
            dastore
            dup
            iconst_3
        12: .line 2054
            aload 1 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            dastore
        13: .line 2050
            astore 2 /* path1 */
        start local 2 // double[] path1
        14: .line 2058
      StackMap locals: double[]
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            aload 1 /* bounds */
            iconst_1
            invokevirtual java.awt.font.TextLayout.getCaretPath:(ILjava/awt/geom/Rectangle2D;Z)[D
            astore 3 /* path0 */
        start local 3 // double[] path0
        15: .line 2060
            aload 0 /* this */
            aload 3 /* path0 */
            aload 2 /* path1 */
            invokevirtual java.awt.font.TextLayout.boundingShape:([D[D)Ljava/awt/geom/GeneralPath;
            areturn
        end local 3 // double[] path0
        end local 2 // double[] path1
        end local 1 // java.awt.geom.Rectangle2D bounds
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   16     0    this  Ljava/awt/font/TextLayout;
            0   16     1  bounds  Ljava/awt/geom/Rectangle2D;
            7    8     2   path1  [D
           14   16     2   path1  [D
           15   16     3   path0  [D
    MethodParameters:
        Name  Flags
      bounds  

  public int[] getLogicalRangesForVisualSelection(java.awt.font.TextHitInfo, java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo firstEndpoint
        start local 2 // java.awt.font.TextHitInfo secondEndpoint
         0: .line 2074
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 2076
            aload 0 /* this */
            aload 1 /* firstEndpoint */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 2077
            aload 0 /* this */
            aload 2 /* secondEndpoint */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         3: .line 2081
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            newarray 4
            astore 3 /* included */
        start local 3 // boolean[] included
         4: .line 2083
            aload 0 /* this */
            aload 1 /* firstEndpoint */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 4 /* startIndex */
        start local 4 // int startIndex
         5: .line 2084
            aload 0 /* this */
            aload 2 /* secondEndpoint */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 5 /* limitIndex */
        start local 5 // int limitIndex
         6: .line 2086
            iload 4 /* startIndex */
            iload 5 /* limitIndex */
            if_icmple 10
         7: .line 2087
            iload 4 /* startIndex */
            istore 6 /* t */
        start local 6 // int t
         8: .line 2088
            iload 5 /* limitIndex */
            istore 4 /* startIndex */
         9: .line 2089
            iload 6 /* t */
            istore 5 /* limitIndex */
        end local 6 // int t
        10: .line 2099
      StackMap locals: boolean[] int int
      StackMap stack:
            iload 4 /* startIndex */
            iload 5 /* limitIndex */
            if_icmpge 16
        11: .line 2100
            iload 4 /* startIndex */
            istore 6 /* visIndex */
        start local 6 // int visIndex
        12: .line 2101
            goto 15
        13: .line 2102
      StackMap locals: int
      StackMap stack:
            aload 3 /* included */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 6 /* visIndex */
            invokevirtual java.awt.font.TextLine.visualToLogical:(I)I
            iconst_1
            bastore
        14: .line 2103
            iinc 6 /* visIndex */ 1
        15: .line 2101
      StackMap locals:
      StackMap stack:
            iload 6 /* visIndex */
            iload 5 /* limitIndex */
            if_icmplt 13
        end local 6 // int visIndex
        16: .line 2111
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 6 /* count */
        start local 6 // int count
        17: .line 2112
            iconst_0
            istore 7 /* inrun */
        start local 7 // boolean inrun
        18: .line 2113
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        19: goto 27
        20: .line 2114
      StackMap locals: int int int
      StackMap stack:
            aload 3 /* included */
            iload 8 /* i */
            baload
            iload 7 /* inrun */
            if_icmpeq 26
        21: .line 2115
            iload 7 /* inrun */
            ifeq 22
            iconst_0
            goto 23
      StackMap locals:
      StackMap stack:
        22: iconst_1
      StackMap locals:
      StackMap stack: int
        23: istore 7 /* inrun */
        24: .line 2116
            iload 7 /* inrun */
            ifeq 26
        25: .line 2117
            iinc 6 /* count */ 1
        26: .line 2113
      StackMap locals:
      StackMap stack:
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 8 /* i */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmplt 20
        end local 8 // int i
        28: .line 2122
            iload 6 /* count */
            iconst_2
            imul
            newarray 10
            astore 8 /* ranges */
        start local 8 // int[] ranges
        29: .line 2123
            iconst_0
            istore 6 /* count */
        30: .line 2124
            iconst_0
            istore 7 /* inrun */
        31: .line 2125
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        32: goto 39
        33: .line 2126
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.font.TextHitInfo boolean[] int int int int int[] int
      StackMap stack:
            aload 3 /* included */
            iload 9 /* i */
            baload
            iload 7 /* inrun */
            if_icmpeq 38
        34: .line 2127
            aload 8 /* ranges */
            iload 6 /* count */
            iinc 6 /* count */ 1
            iload 9 /* i */
            iastore
        35: .line 2128
            iload 7 /* inrun */
            ifeq 36
            iconst_0
            goto 37
      StackMap locals:
      StackMap stack:
        36: iconst_1
      StackMap locals:
      StackMap stack: int
        37: istore 7 /* inrun */
        38: .line 2125
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        39: iload 9 /* i */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmplt 33
        end local 9 // int i
        40: .line 2131
            iload 7 /* inrun */
            ifeq 42
        41: .line 2132
            aload 8 /* ranges */
            iload 6 /* count */
            iinc 6 /* count */ 1
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iastore
        42: .line 2135
      StackMap locals:
      StackMap stack:
            aload 8 /* ranges */
            areturn
        end local 8 // int[] ranges
        end local 7 // boolean inrun
        end local 6 // int count
        end local 5 // int limitIndex
        end local 4 // int startIndex
        end local 3 // boolean[] included
        end local 2 // java.awt.font.TextHitInfo secondEndpoint
        end local 1 // java.awt.font.TextHitInfo firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   43     0            this  Ljava/awt/font/TextLayout;
            0   43     1   firstEndpoint  Ljava/awt/font/TextHitInfo;
            0   43     2  secondEndpoint  Ljava/awt/font/TextHitInfo;
            4   43     3        included  [Z
            5   43     4      startIndex  I
            6   43     5      limitIndex  I
            8   10     6               t  I
           12   16     6        visIndex  I
           17   43     6           count  I
           18   43     7           inrun  Z
           19   28     8               i  I
           29   43     8          ranges  [I
           32   40     9               i  I
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  

  public java.awt.Shape getVisualHighlightShape(java.awt.font.TextHitInfo, java.awt.font.TextHitInfo, java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo firstEndpoint
        start local 2 // java.awt.font.TextHitInfo secondEndpoint
        start local 3 // java.awt.geom.Rectangle2D bounds
         0: .line 2178
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 2180
            aload 0 /* this */
            aload 1 /* firstEndpoint */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         2: .line 2181
            aload 0 /* this */
            aload 2 /* secondEndpoint */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         3: .line 2183
            aload 3 /* bounds */
            ifnonnull 5
         4: .line 2184
            new java.lang.IllegalArgumentException
            dup
            ldc "Null Rectangle2D passed to TextLayout.getVisualHighlightShape()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 2187
      StackMap locals:
      StackMap stack:
            new java.awt.geom.GeneralPath
            dup
            iconst_0
            invokespecial java.awt.geom.GeneralPath.<init>:(I)V
            astore 4 /* result */
        start local 4 // java.awt.geom.GeneralPath result
         6: .line 2189
            aload 0 /* this */
            aload 1 /* firstEndpoint */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 5 /* firstCaret */
        start local 5 // int firstCaret
         7: .line 2190
            aload 0 /* this */
            aload 2 /* secondEndpoint */
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            istore 6 /* secondCaret */
        start local 6 // int secondCaret
         8: .line 2192
            aload 4 /* result */
            aload 0 /* this */
            iload 5 /* firstCaret */
            iload 6 /* secondCaret */
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.caretBoundingShape:(IILjava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
         9: .line 2193
            iconst_0
        10: .line 2192
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        11: .line 2195
            iload 5 /* firstCaret */
            ifeq 12
            iload 6 /* secondCaret */
            ifne 15
        12: .line 2196
      StackMap locals: java.awt.geom.GeneralPath int int
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.leftShape:(Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
            astore 7 /* ls */
        start local 7 // java.awt.geom.GeneralPath ls
        13: .line 2197
            aload 7 /* ls */
            invokevirtual java.awt.geom.GeneralPath.getBounds:()Ljava/awt/Rectangle;
            invokevirtual java.awt.Rectangle.isEmpty:()Z
            ifne 15
        14: .line 2198
            aload 4 /* result */
            aload 7 /* ls */
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        end local 7 // java.awt.geom.GeneralPath ls
        15: .line 2201
      StackMap locals:
      StackMap stack:
            iload 5 /* firstCaret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpeq 16
            iload 6 /* secondCaret */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 19
        16: .line 2202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.rightShape:(Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
            astore 7 /* rs */
        start local 7 // java.awt.geom.GeneralPath rs
        17: .line 2203
            aload 7 /* rs */
            invokevirtual java.awt.geom.GeneralPath.getBounds:()Ljava/awt/Rectangle;
            invokevirtual java.awt.Rectangle.isEmpty:()Z
            ifne 19
        18: .line 2204
            aload 4 /* result */
            aload 7 /* rs */
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        end local 7 // java.awt.geom.GeneralPath rs
        19: .line 2208
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 7 /* lp */
        start local 7 // sun.font.LayoutPathImpl lp
        20: .line 2209
            aload 7 /* lp */
            ifnull 22
        21: .line 2210
            aload 7 /* lp */
            aload 4 /* result */
            invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            checkcast java.awt.geom.GeneralPath
            astore 4 /* result */
        22: .line 2213
      StackMap locals: sun.font.LayoutPathImpl
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 7 // sun.font.LayoutPathImpl lp
        end local 6 // int secondCaret
        end local 5 // int firstCaret
        end local 4 // java.awt.geom.GeneralPath result
        end local 3 // java.awt.geom.Rectangle2D bounds
        end local 2 // java.awt.font.TextHitInfo secondEndpoint
        end local 1 // java.awt.font.TextHitInfo firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Ljava/awt/font/TextLayout;
            0   23     1   firstEndpoint  Ljava/awt/font/TextHitInfo;
            0   23     2  secondEndpoint  Ljava/awt/font/TextHitInfo;
            0   23     3          bounds  Ljava/awt/geom/Rectangle2D;
            6   23     4          result  Ljava/awt/geom/GeneralPath;
            7   23     5      firstCaret  I
            8   23     6     secondCaret  I
           13   15     7              ls  Ljava/awt/geom/GeneralPath;
           17   19     7              rs  Ljava/awt/geom/GeneralPath;
           20   23     7              lp  Lsun/font/LayoutPathImpl;
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  
      bounds          

  public java.awt.Shape getVisualHighlightShape(java.awt.font.TextHitInfo, java.awt.font.TextHitInfo);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo firstEndpoint
        start local 2 // java.awt.font.TextHitInfo secondEndpoint
         0: .line 2228
            aload 0 /* this */
            aload 1 /* firstEndpoint */
            aload 2 /* secondEndpoint */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.font.TextLayout.getVisualHighlightShape:(Ljava/awt/font/TextHitInfo;Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
            areturn
        end local 2 // java.awt.font.TextHitInfo secondEndpoint
        end local 1 // java.awt.font.TextHitInfo firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Ljava/awt/font/TextLayout;
            0    1     1   firstEndpoint  Ljava/awt/font/TextHitInfo;
            0    1     2  secondEndpoint  Ljava/awt/font/TextHitInfo;
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  

  public java.awt.Shape getLogicalHighlightShape(int, int, java.awt.geom.Rectangle2D);
    descriptor: (IILjava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int firstEndpoint
        start local 2 // int secondEndpoint
        start local 3 // java.awt.geom.Rectangle2D bounds
         0: .line 2273
            aload 3 /* bounds */
            ifnonnull 2
         1: .line 2274
            new java.lang.IllegalArgumentException
            dup
            ldc "Null Rectangle2D passed to TextLayout.getLogicalHighlightShape()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2277
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         3: .line 2279
            iload 1 /* firstEndpoint */
            iload 2 /* secondEndpoint */
            if_icmple 7
         4: .line 2280
            iload 1 /* firstEndpoint */
            istore 4 /* t */
        start local 4 // int t
         5: .line 2281
            iload 2 /* secondEndpoint */
            istore 1 /* firstEndpoint */
         6: .line 2282
            iload 4 /* t */
            istore 2 /* secondEndpoint */
        end local 4 // int t
         7: .line 2285
      StackMap locals:
      StackMap stack:
            iload 1 /* firstEndpoint */
            iflt 8
            iload 2 /* secondEndpoint */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 9
         8: .line 2286
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Range is invalid in TextLayout.getLogicalHighlightShape()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 2289
      StackMap locals:
      StackMap stack:
            new java.awt.geom.GeneralPath
            dup
            iconst_0
            invokespecial java.awt.geom.GeneralPath.<init>:(I)V
            astore 4 /* result */
        start local 4 // java.awt.geom.GeneralPath result
        10: .line 2291
            bipush 10
            newarray 10
            astore 5 /* carets */
        start local 5 // int[] carets
        11: .line 2292
            iconst_0
            istore 6 /* count */
        start local 6 // int count
        12: .line 2294
            iload 1 /* firstEndpoint */
            iload 2 /* secondEndpoint */
            if_icmpge 27
        13: .line 2295
            iload 1 /* firstEndpoint */
            istore 7 /* logIndex */
        start local 7 // int logIndex
        14: .line 2297
      StackMap locals: java.awt.font.TextLayout int int java.awt.geom.Rectangle2D java.awt.geom.GeneralPath int[] int int
      StackMap stack:
            aload 5 /* carets */
            iload 6 /* count */
            iinc 6 /* count */ 1
            aload 0 /* this */
            iload 7 /* logIndex */
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            iastore
        15: .line 2298
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 7 /* logIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            istore 8 /* ltr */
        start local 8 // boolean ltr
        16: .line 2301
      StackMap locals: int
      StackMap stack:
            iinc 7 /* logIndex */ 1
        17: .line 2302
            iload 7 /* logIndex */
            iload 2 /* secondEndpoint */
            if_icmpge 18
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 7 /* logIndex */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            iload 8 /* ltr */
            if_icmpeq 16
        18: .line 2304
      StackMap locals:
      StackMap stack:
            iload 7 /* logIndex */
            istore 9 /* hitCh */
        start local 9 // int hitCh
        19: .line 2305
            aload 5 /* carets */
            iload 6 /* count */
            iinc 6 /* count */ 1
            aload 0 /* this */
            iload 9 /* hitCh */
            iconst_1
            isub
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            iastore
        20: .line 2307
            iload 6 /* count */
            aload 5 /* carets */
            arraylength
            if_icmpne 24
        21: .line 2308
            aload 5 /* carets */
            arraylength
            bipush 10
            iadd
            newarray 10
            astore 10 /* temp */
        start local 10 // int[] temp
        22: .line 2309
            aload 5 /* carets */
            iconst_0
            aload 10 /* temp */
            iconst_0
            iload 6 /* count */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 2310
            aload 10 /* temp */
            astore 5 /* carets */
        end local 10 // int[] temp
        end local 9 // int hitCh
        end local 8 // boolean ltr
        24: .line 2312
      StackMap locals:
      StackMap stack:
            iload 7 /* logIndex */
            iload 2 /* secondEndpoint */
        25: .line 2296
            if_icmplt 14
        end local 7 // int logIndex
        26: .line 2313
            goto 29
        27: .line 2315
      StackMap locals:
      StackMap stack:
            iconst_2
            istore 6 /* count */
        28: .line 2316
            aload 5 /* carets */
            iconst_0
            aload 5 /* carets */
            iconst_1
            aload 0 /* this */
            iload 1 /* firstEndpoint */
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            invokevirtual java.awt.font.TextLayout.hitToCaret:(Ljava/awt/font/TextHitInfo;)I
            dup_x2
            iastore
            iastore
        29: .line 2321
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        30: goto 35
        31: .line 2322
      StackMap locals: int
      StackMap stack:
            aload 4 /* result */
            aload 0 /* this */
            aload 5 /* carets */
            iload 7 /* i */
            iaload
            aload 5 /* carets */
            iload 7 /* i */
            iconst_1
            iadd
            iaload
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.caretBoundingShape:(IILjava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
        32: .line 2323
            iconst_0
        33: .line 2322
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        34: .line 2321
            iinc 7 /* i */ 2
      StackMap locals:
      StackMap stack:
        35: iload 7 /* i */
            iload 6 /* count */
            if_icmplt 31
        end local 7 // int i
        36: .line 2326
            iload 1 /* firstEndpoint */
            iload 2 /* secondEndpoint */
            if_icmpeq 48
        37: .line 2327
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 38
            iload 1 /* firstEndpoint */
            ifeq 40
      StackMap locals:
      StackMap stack:
        38: aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifne 43
        39: .line 2328
            iload 2 /* secondEndpoint */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpne 43
        40: .line 2329
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.leftShape:(Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
            astore 7 /* ls */
        start local 7 // java.awt.geom.GeneralPath ls
        41: .line 2330
            aload 7 /* ls */
            invokevirtual java.awt.geom.GeneralPath.getBounds:()Ljava/awt/Rectangle;
            invokevirtual java.awt.Rectangle.isEmpty:()Z
            ifne 43
        42: .line 2331
            aload 4 /* result */
            aload 7 /* ls */
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        end local 7 // java.awt.geom.GeneralPath ls
        43: .line 2335
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifeq 44
            iload 2 /* secondEndpoint */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpeq 45
        44: .line 2336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            ifne 48
            iload 1 /* firstEndpoint */
            ifne 48
        45: .line 2338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bounds */
            invokevirtual java.awt.font.TextLayout.rightShape:(Ljava/awt/geom/Rectangle2D;)Ljava/awt/geom/GeneralPath;
            astore 7 /* rs */
        start local 7 // java.awt.geom.GeneralPath rs
        46: .line 2339
            aload 7 /* rs */
            invokevirtual java.awt.geom.GeneralPath.getBounds:()Ljava/awt/Rectangle;
            invokevirtual java.awt.Rectangle.isEmpty:()Z
            ifne 48
        47: .line 2340
            aload 4 /* result */
            aload 7 /* rs */
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        end local 7 // java.awt.geom.GeneralPath rs
        48: .line 2345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 7 /* lp */
        start local 7 // sun.font.LayoutPathImpl lp
        49: .line 2346
            aload 7 /* lp */
            ifnull 51
        50: .line 2347
            aload 7 /* lp */
            aload 4 /* result */
            invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            checkcast java.awt.geom.GeneralPath
            astore 4 /* result */
        51: .line 2349
      StackMap locals: sun.font.LayoutPathImpl
      StackMap stack:
            aload 4 /* result */
            areturn
        end local 7 // sun.font.LayoutPathImpl lp
        end local 6 // int count
        end local 5 // int[] carets
        end local 4 // java.awt.geom.GeneralPath result
        end local 3 // java.awt.geom.Rectangle2D bounds
        end local 2 // int secondEndpoint
        end local 1 // int firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   52     0            this  Ljava/awt/font/TextLayout;
            0   52     1   firstEndpoint  I
            0   52     2  secondEndpoint  I
            0   52     3          bounds  Ljava/awt/geom/Rectangle2D;
            5    7     4               t  I
           10   52     4          result  Ljava/awt/geom/GeneralPath;
           11   52     5          carets  [I
           12   52     6           count  I
           14   26     7        logIndex  I
           16   24     8             ltr  Z
           19   24     9           hitCh  I
           22   24    10            temp  [I
           30   36     7               i  I
           41   43     7              ls  Ljava/awt/geom/GeneralPath;
           46   48     7              rs  Ljava/awt/geom/GeneralPath;
           49   52     7              lp  Lsun/font/LayoutPathImpl;
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  
      bounds          

  public java.awt.Shape getLogicalHighlightShape(int, int);
    descriptor: (II)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int firstEndpoint
        start local 2 // int secondEndpoint
         0: .line 2368
            aload 0 /* this */
            iload 1 /* firstEndpoint */
            iload 2 /* secondEndpoint */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.font.TextLayout.getLogicalHighlightShape:(IILjava/awt/geom/Rectangle2D;)Ljava/awt/Shape;
            areturn
        end local 2 // int secondEndpoint
        end local 1 // int firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Ljava/awt/font/TextLayout;
            0    1     1   firstEndpoint  I
            0    1     2  secondEndpoint  I
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  

  public java.awt.Shape getBlackBoxBounds(int, int);
    descriptor: (II)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // int firstEndpoint
        start local 2 // int secondEndpoint
         0: .line 2383
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 2385
            iload 1 /* firstEndpoint */
            iload 2 /* secondEndpoint */
            if_icmple 5
         2: .line 2386
            iload 1 /* firstEndpoint */
            istore 3 /* t */
        start local 3 // int t
         3: .line 2387
            iload 2 /* secondEndpoint */
            istore 1 /* firstEndpoint */
         4: .line 2388
            iload 3 /* t */
            istore 2 /* secondEndpoint */
        end local 3 // int t
         5: .line 2391
      StackMap locals:
      StackMap stack:
            iload 1 /* firstEndpoint */
            iflt 6
            iload 2 /* secondEndpoint */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmple 7
         6: .line 2392
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Invalid range passed to TextLayout.getBlackBoxBounds()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 2400
      StackMap locals:
      StackMap stack:
            new java.awt.geom.GeneralPath
            dup
            iconst_1
            invokespecial java.awt.geom.GeneralPath.<init>:(I)V
            astore 3 /* result */
        start local 3 // java.awt.geom.GeneralPath result
         8: .line 2402
            iload 1 /* firstEndpoint */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmpge 17
         9: .line 2403
            iload 1 /* firstEndpoint */
            istore 4 /* logIndex */
        start local 4 // int logIndex
        10: .line 2404
            goto 15
        11: .line 2407
      StackMap locals: java.awt.geom.GeneralPath int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 4 /* logIndex */
            invokevirtual java.awt.font.TextLine.getCharBounds:(I)Ljava/awt/geom/Rectangle2D;
            astore 5 /* r */
        start local 5 // java.awt.geom.Rectangle2D r
        12: .line 2408
            aload 5 /* r */
            invokevirtual java.awt.geom.Rectangle2D.isEmpty:()Z
            ifne 14
        13: .line 2409
            aload 3 /* result */
            aload 5 /* r */
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
        end local 5 // java.awt.geom.Rectangle2D r
        14: .line 2405
      StackMap locals:
      StackMap stack:
            iinc 4 /* logIndex */ 1
        15: .line 2404
      StackMap locals:
      StackMap stack:
            iload 4 /* logIndex */
            iload 2 /* secondEndpoint */
        16: .line 2403
            if_icmplt 11
        end local 4 // int logIndex
        17: .line 2414
      StackMap locals:
      StackMap stack:
            getstatic java.awt.font.TextLayout.dx:F
            fconst_0
            fcmpl
            ifne 18
            getstatic java.awt.font.TextLayout.dy:F
            fconst_0
            fcmpl
            ifeq 20
        18: .line 2415
      StackMap locals:
      StackMap stack:
            getstatic java.awt.font.TextLayout.dx:F
            f2d
            getstatic java.awt.font.TextLayout.dy:F
            f2d
            invokestatic java.awt.geom.AffineTransform.getTranslateInstance:(DD)Ljava/awt/geom/AffineTransform;
            astore 4 /* tx */
        start local 4 // java.awt.geom.AffineTransform tx
        19: .line 2416
            aload 4 /* tx */
            aload 3 /* result */
            invokevirtual java.awt.geom.AffineTransform.createTransformedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            checkcast java.awt.geom.GeneralPath
            astore 3 /* result */
        end local 4 // java.awt.geom.AffineTransform tx
        20: .line 2418
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 4 /* lp */
        start local 4 // sun.font.LayoutPathImpl lp
        21: .line 2419
            aload 4 /* lp */
            ifnull 23
        22: .line 2420
            aload 4 /* lp */
            aload 3 /* result */
            invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            checkcast java.awt.geom.GeneralPath
            astore 3 /* result */
        23: .line 2424
      StackMap locals: sun.font.LayoutPathImpl
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 4 // sun.font.LayoutPathImpl lp
        end local 3 // java.awt.geom.GeneralPath result
        end local 2 // int secondEndpoint
        end local 1 // int firstEndpoint
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   24     0            this  Ljava/awt/font/TextLayout;
            0   24     1   firstEndpoint  I
            0   24     2  secondEndpoint  I
            3    5     3               t  I
            8   24     3          result  Ljava/awt/geom/GeneralPath;
           10   17     4        logIndex  I
           12   14     5               r  Ljava/awt/geom/Rectangle2D;
           19   20     4              tx  Ljava/awt/geom/AffineTransform;
           21   24     4              lp  Lsun/font/LayoutPathImpl;
    MethodParameters:
                Name  Flags
      firstEndpoint   
      secondEndpoint  

  private float caretToPointDistance(float[], float, float);
    descriptor: ([FFF)F
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // float[] caretInfo
        start local 2 // float x
        start local 3 // float y
         0: .line 2437
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 1
            fload 3 /* y */
            goto 2
      StackMap locals:
      StackMap stack:
         1: fload 2 /* x */
      StackMap locals:
      StackMap stack: float
         2: fstore 4 /* lineDistance */
        start local 4 // float lineDistance
         3: .line 2438
            aload 0 /* this */
            getfield java.awt.font.TextLayout.isVerticalLine:Z
            ifeq 4
            fload 2 /* x */
            fneg
            goto 5
      StackMap locals: float
      StackMap stack:
         4: fload 3 /* y */
      StackMap locals:
      StackMap stack: float
         5: fstore 5 /* distanceOffBaseline */
        start local 5 // float distanceOffBaseline
         6: .line 2440
            fload 4 /* lineDistance */
            aload 1 /* caretInfo */
            iconst_0
            faload
            fsub
         7: .line 2441
            fload 5 /* distanceOffBaseline */
            aload 1 /* caretInfo */
            iconst_1
            faload
            fmul
         8: .line 2440
            fadd
            freturn
        end local 5 // float distanceOffBaseline
        end local 4 // float lineDistance
        end local 3 // float y
        end local 2 // float x
        end local 1 // float[] caretInfo
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Ljava/awt/font/TextLayout;
            0    9     1            caretInfo  [F
            0    9     2                    x  F
            0    9     3                    y  F
            3    9     4         lineDistance  F
            6    9     5  distanceOffBaseline  F
    MethodParameters:
           Name  Flags
      caretInfo  
      x          
      y          

  public java.awt.font.TextHitInfo hitTestChar(float, float, java.awt.geom.Rectangle2D);
    descriptor: (FFLjava/awt/geom/Rectangle2D;)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=23, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // float x
        start local 2 // float y
        start local 3 // java.awt.geom.Rectangle2D bounds
         0: .line 2464
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 4 /* lp */
        start local 4 // sun.font.LayoutPathImpl lp
         1: .line 2466
            aload 4 /* lp */
            ifnull 6
         2: .line 2467
            new java.awt.geom.Point2D$Float
            dup
            fload 1 /* x */
            fload 2 /* y */
            invokespecial java.awt.geom.Point2D$Float.<init>:(FF)V
            astore 5 /* pt */
        start local 5 // java.awt.geom.Point2D$Float pt
         3: .line 2468
            aload 4 /* lp */
            aload 5 /* pt */
            aload 5 /* pt */
            invokevirtual sun.font.LayoutPathImpl.pointToPath:(Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)Z
            pop
         4: .line 2469
            aload 5 /* pt */
            getfield java.awt.geom.Point2D$Float.x:F
            fstore 1 /* x */
         5: .line 2470
            aload 5 /* pt */
            getfield java.awt.geom.Point2D$Float.y:F
            fstore 2 /* y */
        end local 5 // java.awt.geom.Point2D$Float pt
         6: .line 2473
      StackMap locals: sun.font.LayoutPathImpl
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.isVertical:()Z
            ifeq 11
         7: .line 2474
            fload 2 /* y */
            f2d
            aload 3 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getMinY:()D
            dcmpg
            ifge 9
         8: .line 2475
            iconst_0
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            areturn
         9: .line 2476
      StackMap locals:
      StackMap stack:
            fload 2 /* y */
            f2d
            aload 3 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getMaxY:()D
            dcmpl
            iflt 19
        10: .line 2477
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
            areturn
        11: .line 2480
      StackMap locals:
      StackMap stack:
            fload 1 /* x */
            f2d
            aload 3 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getMinX:()D
            dcmpg
            ifge 15
        12: .line 2481
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.isLeftToRight:()Z
            ifeq 13
            iconst_0
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
        14: areturn
        15: .line 2482
      StackMap locals:
      StackMap stack:
            fload 1 /* x */
            f2d
            aload 3 /* bounds */
            invokevirtual java.awt.geom.Rectangle2D.getMaxX:()D
            dcmpl
            iflt 19
        16: .line 2483
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.isLeftToRight:()Z
            ifeq 17
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            iconst_1
            isub
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
        18: areturn
        19: .line 2497
      StackMap locals:
      StackMap stack:
            ldc 1.7976931348623157E308
            dstore 5 /* distance */
        start local 5 // double distance
        20: .line 2498
            iconst_0
            istore 7 /* index */
        start local 7 // int index
        21: .line 2499
            iconst_m1
            istore 8 /* trail */
        start local 8 // int trail
        22: .line 2500
            aconst_null
            astore 9 /* lcm */
        start local 9 // sun.font.CoreMetrics lcm
        23: .line 2501
            fconst_0
            fstore 10 /* icx */
        start local 10 // float icx
        24: fconst_0
            fstore 11 /* icy */
        start local 11 // float icy
        25: fconst_0
            fstore 12 /* ia */
        start local 12 // float ia
        26: fconst_0
            fstore 13 /* cy */
        start local 13 // float cy
        27: fconst_0
            fstore 14 /* dya */
        start local 14 // float dya
        28: fconst_0
            fstore 15 /* ydsq */
        start local 15 // float ydsq
        29: .line 2503
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        30: goto 60
        31: .line 2504
      StackMap locals: java.awt.font.TextLayout float float java.awt.geom.Rectangle2D sun.font.LayoutPathImpl double int int sun.font.CoreMetrics float float float float float float int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* i */
            invokevirtual java.awt.font.TextLine.caretAtOffsetIsValid:(I)Z
            ifne 33
        32: .line 2505
            goto 59
        33: .line 2507
      StackMap locals:
      StackMap stack:
            iload 8 /* trail */
            iconst_m1
            if_icmpne 35
        34: .line 2508
            iload 16 /* i */
            istore 8 /* trail */
        35: .line 2510
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* i */
            invokevirtual java.awt.font.TextLine.getCoreMetricsAt:(I)Lsun/font/CoreMetrics;
            astore 17 /* cm */
        start local 17 // sun.font.CoreMetrics cm
        36: .line 2511
            aload 17 /* cm */
            aload 9 /* lcm */
            if_acmpeq 49
        37: .line 2512
            aload 17 /* cm */
            astore 9 /* lcm */
        38: .line 2514
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            iconst_m1
            if_icmpne 41
        39: .line 2515
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.ascent:F
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.ascent:F
            fsub
            fneg
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.ssOffset:F
            fadd
            fstore 13 /* cy */
        40: .line 2516
            goto 45
      StackMap locals: sun.font.CoreMetrics
      StackMap stack:
        41: aload 17 /* cm */
            getfield sun.font.CoreMetrics.baselineIndex:I
            bipush -2
            if_icmpne 44
        42: .line 2517
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getMetrics:()Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.descent:F
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.descent:F
            fsub
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.ssOffset:F
            fadd
            fstore 13 /* cy */
        43: .line 2518
            goto 45
        44: .line 2519
      StackMap locals:
      StackMap stack:
            aload 17 /* cm */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.baselineOffsets:[F
            invokevirtual sun.font.CoreMetrics.effectiveBaselineOffset:([F)F
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.ssOffset:F
            fadd
            fstore 13 /* cy */
        45: .line 2521
      StackMap locals:
      StackMap stack:
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.descent:F
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.ascent:F
            fsub
            fconst_2
            fdiv
            fload 13 /* cy */
            fsub
            fstore 18 /* dy */
        start local 18 // float dy
        46: .line 2522
            fload 18 /* dy */
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.italicAngle:F
            fmul
            fstore 14 /* dya */
        47: .line 2523
            fload 13 /* cy */
            fload 18 /* dy */
            fadd
            fstore 13 /* cy */
        48: .line 2524
            fload 13 /* cy */
            fload 2 /* y */
            fsub
            fload 13 /* cy */
            fload 2 /* y */
            fsub
            fmul
            fstore 15 /* ydsq */
        end local 18 // float dy
        49: .line 2526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* i */
            invokevirtual java.awt.font.TextLine.getCharXPosition:(I)F
            fstore 18 /* cx */
        start local 18 // float cx
        50: .line 2527
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 16 /* i */
            invokevirtual java.awt.font.TextLine.getCharAdvance:(I)F
            fstore 19 /* ca */
        start local 19 // float ca
        51: .line 2528
            fload 19 /* ca */
            fconst_2
            fdiv
            fstore 20 /* dx */
        start local 20 // float dx
        52: .line 2529
            fload 18 /* cx */
            fload 20 /* dx */
            fload 14 /* dya */
            fsub
            fadd
            fstore 18 /* cx */
        53: .line 2532
            ldc 4.0
            fload 18 /* cx */
            fload 1 /* x */
            fsub
            fmul
            fload 18 /* cx */
            fload 1 /* x */
            fsub
            fmul
            fload 15 /* ydsq */
            fadd
            f2d
            invokestatic java.lang.Math.sqrt:(D)D
            dstore 21 /* nd */
        start local 21 // double nd
        54: .line 2533
            dload 21 /* nd */
            dload 5 /* distance */
            dcmpg
            ifge 59
        55: .line 2534
            dload 21 /* nd */
            dstore 5 /* distance */
        56: .line 2535
            iload 16 /* i */
            istore 7 /* index */
        57: .line 2536
            iconst_m1
            istore 8 /* trail */
        58: .line 2537
            fload 18 /* cx */
            fstore 10 /* icx */
            fload 13 /* cy */
            fstore 11 /* icy */
            aload 17 /* cm */
            getfield sun.font.CoreMetrics.italicAngle:F
            fstore 12 /* ia */
        end local 21 // double nd
        end local 20 // float dx
        end local 19 // float ca
        end local 18 // float cx
        end local 17 // sun.font.CoreMetrics cm
        59: .line 2503
      StackMap locals:
      StackMap stack:
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 16 /* i */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            if_icmplt 31
        end local 16 // int i
        61: .line 2540
            fload 1 /* x */
            fload 10 /* icx */
            fload 2 /* y */
            fload 11 /* icy */
            fsub
            fload 12 /* ia */
            fmul
            fsub
            fcmpg
            ifge 62
            iconst_1
            goto 63
      StackMap locals:
      StackMap stack:
        62: iconst_0
      StackMap locals:
      StackMap stack: int
        63: istore 16 /* left */
        start local 16 // boolean left
        64: .line 2541
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 7 /* index */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            iload 16 /* left */
            if_icmpne 65
            iconst_1
            goto 66
      StackMap locals: int
      StackMap stack:
        65: iconst_0
      StackMap locals:
      StackMap stack: int
        66: istore 17 /* leading */
        start local 17 // boolean leading
        67: .line 2542
            iload 8 /* trail */
            iconst_m1
            if_icmpne 69
        68: .line 2543
            aload 0 /* this */
            getfield java.awt.font.TextLayout.characterCount:I
            istore 8 /* trail */
        69: .line 2545
      StackMap locals: int
      StackMap stack:
            iload 17 /* leading */
            ifeq 70
            iload 7 /* index */
            invokestatic java.awt.font.TextHitInfo.leading:(I)Ljava/awt/font/TextHitInfo;
            goto 71
        70: .line 2546
      StackMap locals:
      StackMap stack:
            iload 8 /* trail */
            iconst_1
            isub
            invokestatic java.awt.font.TextHitInfo.trailing:(I)Ljava/awt/font/TextHitInfo;
        71: .line 2545
      StackMap locals:
      StackMap stack: java.awt.font.TextHitInfo
            astore 18 /* result */
        start local 18 // java.awt.font.TextHitInfo result
        72: .line 2547
            aload 18 /* result */
            areturn
        end local 18 // java.awt.font.TextHitInfo result
        end local 17 // boolean leading
        end local 16 // boolean left
        end local 15 // float ydsq
        end local 14 // float dya
        end local 13 // float cy
        end local 12 // float ia
        end local 11 // float icy
        end local 10 // float icx
        end local 9 // sun.font.CoreMetrics lcm
        end local 8 // int trail
        end local 7 // int index
        end local 5 // double distance
        end local 4 // sun.font.LayoutPathImpl lp
        end local 3 // java.awt.geom.Rectangle2D bounds
        end local 2 // float y
        end local 1 // float x
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   73     0      this  Ljava/awt/font/TextLayout;
            0   73     1         x  F
            0   73     2         y  F
            0   73     3    bounds  Ljava/awt/geom/Rectangle2D;
            1   73     4        lp  Lsun/font/LayoutPathImpl;
            3    6     5        pt  Ljava/awt/geom/Point2D$Float;
           20   73     5  distance  D
           21   73     7     index  I
           22   73     8     trail  I
           23   73     9       lcm  Lsun/font/CoreMetrics;
           24   73    10       icx  F
           25   73    11       icy  F
           26   73    12        ia  F
           27   73    13        cy  F
           28   73    14       dya  F
           29   73    15      ydsq  F
           30   61    16         i  I
           36   59    17        cm  Lsun/font/CoreMetrics;
           46   49    18        dy  F
           50   59    18        cx  F
           51   59    19        ca  F
           52   59    20        dx  F
           54   59    21        nd  D
           64   73    16      left  Z
           67   73    17   leading  Z
           72   73    18    result  Ljava/awt/font/TextHitInfo;
    MethodParameters:
        Name  Flags
      x       
      y       
      bounds  

  public java.awt.font.TextHitInfo hitTestChar(float, float);
    descriptor: (FF)Ljava/awt/font/TextHitInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // float x
        start local 2 // float y
         0: .line 2564
            aload 0 /* this */
            fload 1 /* x */
            fload 2 /* y */
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.getNaturalBounds:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.font.TextLayout.hitTestChar:(FFLjava/awt/geom/Rectangle2D;)Ljava/awt/font/TextHitInfo;
            areturn
        end local 2 // float y
        end local 1 // float x
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;
            0    1     1     x  F
            0    1     2     y  F
    MethodParameters:
      Name  Flags
      x     
      y     

  public boolean equals(java.awt.font.TextLayout);
    descriptor: (Ljava/awt/font/TextLayout;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextLayout rhs
         0: .line 2577
            aload 0 /* this */
            aload 1 /* rhs */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.awt.font.TextLayout rhs
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;
            0    1     1   rhs  Ljava/awt/font/TextLayout;
    MethodParameters:
      Name  Flags
      rhs   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 2586
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 2587
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/font/TextLayout;

  public void draw(java.awt.Graphics2D, float, float);
    descriptor: (Ljava/awt/Graphics2D;FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.Graphics2D g2
        start local 2 // float x
        start local 3 // float y
         0: .line 2605
            aload 1 /* g2 */
            ifnonnull 2
         1: .line 2606
            new java.lang.IllegalArgumentException
            dup
            ldc "Null Graphics2D passed to TextLayout.draw()"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            aload 1 /* g2 */
            fload 2 /* x */
            getstatic java.awt.font.TextLayout.dx:F
            fsub
            fload 3 /* y */
            getstatic java.awt.font.TextLayout.dy:F
            fsub
            invokevirtual java.awt.font.TextLine.draw:(Ljava/awt/Graphics2D;FF)V
         3: .line 2610
            return
        end local 3 // float y
        end local 2 // float x
        end local 1 // java.awt.Graphics2D g2
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/font/TextLayout;
            0    4     1    g2  Ljava/awt/Graphics2D;
            0    4     2     x  F
            0    4     3     y  F
    MethodParameters:
      Name  Flags
      g2    
      x     
      y     

  java.awt.font.TextLine getTextLineForTesting();
    descriptor: ()Ljava/awt/font/TextLine;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 2617
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            areturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  private static int sameBaselineUpTo(java.awt.Font, char[], int, int);
    descriptor: (Ljava/awt/Font;[CII)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // java.awt.Font font
        start local 1 // char[] text
        start local 2 // int start
        start local 3 // int limit
         0: .line 2629
            iload 3 /* limit */
            ireturn
        end local 3 // int limit
        end local 2 // int start
        end local 1 // char[] text
        end local 0 // java.awt.Font font
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   font  Ljava/awt/Font;
            0    1     1   text  [C
            0    1     2  start  I
            0    1     3  limit  I
    MethodParameters:
       Name  Flags
      font   
      text   
      start  
      limit  

  static byte getBaselineFromGraphic(java.awt.font.GraphicAttribute);
    descriptor: (Ljava/awt/font/GraphicAttribute;)B
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.awt.font.GraphicAttribute graphic
         0: .line 2641
            aload 0 /* graphic */
            invokevirtual java.awt.font.GraphicAttribute.getAlignment:()I
            i2b
            istore 1 /* alignment */
        start local 1 // byte alignment
         1: .line 2643
            iload 1 /* alignment */
            bipush -2
            if_icmpeq 3
         2: .line 2644
            iload 1 /* alignment */
            iconst_m1
            if_icmpne 4
         3: .line 2646
      StackMap locals: int
      StackMap stack:
            iconst_0
            ireturn
         4: .line 2649
      StackMap locals:
      StackMap stack:
            iload 1 /* alignment */
            ireturn
        end local 1 // byte alignment
        end local 0 // java.awt.font.GraphicAttribute graphic
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0    graphic  Ljava/awt/font/GraphicAttribute;
            1    5     1  alignment  B
    MethodParameters:
         Name  Flags
      graphic  

  public java.awt.Shape getOutline(java.awt.geom.AffineTransform);
    descriptor: (Ljava/awt/geom/AffineTransform;)Ljava/awt/Shape;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.geom.AffineTransform tx
         0: .line 2662
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         1: .line 2663
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            aload 1 /* tx */
            invokevirtual java.awt.font.TextLine.getOutline:(Ljava/awt/geom/AffineTransform;)Ljava/awt/Shape;
            astore 2 /* result */
        start local 2 // java.awt.Shape result
         2: .line 2664
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 3 /* lp */
        start local 3 // sun.font.LayoutPathImpl lp
         3: .line 2665
            aload 3 /* lp */
            ifnull 5
         4: .line 2666
            aload 3 /* lp */
            aload 2 /* result */
            invokevirtual sun.font.LayoutPathImpl.mapShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            astore 2 /* result */
         5: .line 2668
      StackMap locals: java.awt.Shape sun.font.LayoutPathImpl
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 3 // sun.font.LayoutPathImpl lp
        end local 2 // java.awt.Shape result
        end local 1 // java.awt.geom.AffineTransform tx
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/awt/font/TextLayout;
            0    6     1      tx  Ljava/awt/geom/AffineTransform;
            2    6     2  result  Ljava/awt/Shape;
            3    6     3      lp  Lsun/font/LayoutPathImpl;
    MethodParameters:
      Name  Flags
      tx    

  public java.awt.font.LayoutPath getLayoutPath();
    descriptor: ()Ljava/awt/font/LayoutPath;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.font.TextLayout this
         0: .line 2678
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            areturn
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/font/TextLayout;

  public void hitToPoint(java.awt.font.TextHitInfo, java.awt.geom.Point2D);
    descriptor: (Ljava/awt/font/TextHitInfo;Ljava/awt/geom/Point2D;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=3
        start local 0 // java.awt.font.TextLayout this
        start local 1 // java.awt.font.TextHitInfo hit
        start local 2 // java.awt.geom.Point2D point
         0: .line 2697
            aload 1 /* hit */
            ifnull 1
            aload 2 /* point */
            ifnonnull 7
         1: .line 2698
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
         2: new java.lang.StringBuilder
            dup
            aload 1 /* hit */
            ifnonnull 3
            ldc "hit"
            goto 4
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Point2D
      StackMap stack: new 1 new 1 new 2 new 2
         3: ldc "point"
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Point2D
      StackMap stack: new 1 new 1 new 2 new 2 java.lang.String
         4: invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 2699
            ldc " can't be null"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 2698
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 2701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.font.TextLayout.ensureCache:()V
         8: .line 2702
            aload 0 /* this */
            aload 1 /* hit */
            invokevirtual java.awt.font.TextLayout.checkTextHit:(Ljava/awt/font/TextHitInfo;)V
         9: .line 2704
            fconst_0
            fstore 3 /* adv */
        start local 3 // float adv
        10: .line 2705
            fconst_0
            fstore 4 /* off */
        start local 4 // float off
        11: .line 2707
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.getCharIndex:()I
            istore 5 /* ix */
        start local 5 // int ix
        12: .line 2708
            aload 1 /* hit */
            invokevirtual java.awt.font.TextHitInfo.isLeadingEdge:()Z
            istore 6 /* leading */
        start local 6 // boolean leading
        13: .line 2710
            iload 5 /* ix */
            iconst_m1
            if_icmpeq 14
            iload 5 /* ix */
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.characterCount:()I
            if_icmpne 21
        14: .line 2711
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Point2D float float int int
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.isDirectionLTR:()Z
            istore 7 /* ltr */
        start local 7 // boolean ltr
        15: .line 2712
            iload 7 /* ltr */
            iload 5 /* ix */
            iconst_m1
            if_icmpne 16
            iconst_1
            goto 17
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Point2D float float int int int
      StackMap stack: int
        16: iconst_0
      StackMap locals: java.awt.font.TextLayout java.awt.font.TextHitInfo java.awt.geom.Point2D float float int int int
      StackMap stack: int int
        17: if_icmpne 18
            fconst_0
            goto 19
      StackMap locals:
      StackMap stack:
        18: aload 0 /* this */
            getfield java.awt.font.TextLayout.lineMetrics:Ljava/awt/font/TextLine$TextLineMetrics;
            getfield java.awt.font.TextLine$TextLineMetrics.advance:F
      StackMap locals:
      StackMap stack: float
        19: fstore 3 /* adv */
        20: .line 2713
            goto 24
        end local 7 // boolean ltr
        21: .line 2714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 5 /* ix */
            invokevirtual java.awt.font.TextLine.isCharLTR:(I)Z
            istore 7 /* ltr */
        start local 7 // boolean ltr
        22: .line 2715
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 5 /* ix */
            iload 6 /* leading */
            invokevirtual java.awt.font.TextLine.getCharLinePosition:(IZ)F
            fstore 3 /* adv */
        23: .line 2716
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            iload 5 /* ix */
            invokevirtual java.awt.font.TextLine.getCharYPosition:(I)F
            fstore 4 /* off */
        24: .line 2718
      StackMap locals: int
      StackMap stack:
            aload 2 /* point */
            fload 3 /* adv */
            f2d
            fload 4 /* off */
            f2d
            invokevirtual java.awt.geom.Point2D.setLocation:(DD)V
        25: .line 2719
            aload 0 /* this */
            getfield java.awt.font.TextLayout.textLine:Ljava/awt/font/TextLine;
            invokevirtual java.awt.font.TextLine.getLayoutPath:()Lsun/font/LayoutPathImpl;
            astore 8 /* lp */
        start local 8 // java.awt.font.LayoutPath lp
        26: .line 2720
            aload 8 /* lp */
            ifnull 28
        27: .line 2721
            aload 8 /* lp */
            aload 2 /* point */
            iload 7 /* ltr */
            iload 6 /* leading */
            ixor
            aload 2 /* point */
            invokevirtual java.awt.font.LayoutPath.pathToPoint:(Ljava/awt/geom/Point2D;ZLjava/awt/geom/Point2D;)V
        28: .line 2723
      StackMap locals: java.awt.font.LayoutPath
      StackMap stack:
            return
        end local 8 // java.awt.font.LayoutPath lp
        end local 7 // boolean ltr
        end local 6 // boolean leading
        end local 5 // int ix
        end local 4 // float off
        end local 3 // float adv
        end local 2 // java.awt.geom.Point2D point
        end local 1 // java.awt.font.TextHitInfo hit
        end local 0 // java.awt.font.TextLayout this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0     this  Ljava/awt/font/TextLayout;
            0   29     1      hit  Ljava/awt/font/TextHitInfo;
            0   29     2    point  Ljava/awt/geom/Point2D;
           10   29     3      adv  F
           11   29     4      off  F
           12   29     5       ix  I
           13   29     6  leading  Z
           15   21     7      ltr  Z
           22   29     7      ltr  Z
           26   29     8       lp  Ljava/awt/font/LayoutPath;
    MethodParameters:
       Name  Flags
      hit    
      point  
}
SourceFile: "TextLayout.java"
NestMembers:
  java.awt.font.TextLayout$CaretPolicy
InnerClasses:
  public CaretPolicy = java.awt.font.TextLayout$CaretPolicy of java.awt.font.TextLayout
  final TextLineMetrics = java.awt.font.TextLine$TextLineMetrics of java.awt.font.TextLine
  public Float = java.awt.geom.Point2D$Float of java.awt.geom.Point2D
  public Float = java.awt.geom.Rectangle2D$Float of java.awt.geom.Rectangle2D
  public Attribute = java.text.AttributedCharacterIterator$Attribute of java.text.AttributedCharacterIterator