class sun.font.Underline$IMGrayUnderline extends sun.font.Underline
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.font.Underline$IMGrayUnderline
  super_class: sun.font.Underline
{
  private java.awt.BasicStroke stroke;
    descriptor: Ljava/awt/BasicStroke;
    flags: (0x0002) ACC_PRIVATE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=11, locals=1, args_size=1
        start local 0 // sun.font.Underline$IMGrayUnderline this
         0: .line 198
            aload 0 /* this */
            invokespecial sun.font.Underline.<init>:()V
         1: .line 199
            aload 0 /* this */
            new java.awt.BasicStroke
            dup
            fconst_1
         2: .line 200
            iconst_0
         3: .line 201
            iconst_0
         4: .line 202
            ldc 10.0
         5: .line 203
            iconst_2
            newarray 6
            dup
            iconst_0
            fconst_1
            fastore
            dup
            iconst_1
            fconst_1
            fastore
         6: .line 204
            fconst_0
            invokespecial java.awt.BasicStroke.<init>:(FIIF[FF)V
         7: .line 199
            putfield sun.font.Underline$IMGrayUnderline.stroke:Ljava/awt/BasicStroke;
         8: .line 205
            return
        end local 0 // sun.font.Underline$IMGrayUnderline this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/font/Underline$IMGrayUnderline;

  void drawUnderline(java.awt.Graphics2D, float, float, float, float);
    descriptor: (Ljava/awt/Graphics2D;FFFF)V
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=6
        start local 0 // sun.font.Underline$IMGrayUnderline this
        start local 1 // java.awt.Graphics2D g2d
        start local 2 // float thickness
        start local 3 // float x1
        start local 4 // float x2
        start local 5 // float y
         0: .line 213
            aload 1 /* g2d */
            invokevirtual java.awt.Graphics2D.getStroke:()Ljava/awt/Stroke;
            astore 6 /* saveStroke */
        start local 6 // java.awt.Stroke saveStroke
         1: .line 214
            aload 1 /* g2d */
            aload 0 /* this */
            getfield sun.font.Underline$IMGrayUnderline.stroke:Ljava/awt/BasicStroke;
            invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
         2: .line 216
            new java.awt.geom.Line2D$Float
            dup
            fload 3 /* x1 */
            fload 5 /* y */
            fload 4 /* x2 */
            fload 5 /* y */
            invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
            astore 7 /* drawLine */
        start local 7 // java.awt.geom.Line2D$Float drawLine
         3: .line 217
            aload 1 /* g2d */
            aload 7 /* drawLine */
            invokevirtual java.awt.Graphics2D.draw:(Ljava/awt/Shape;)V
         4: .line 219
            aload 7 /* drawLine */
            dup
            getfield java.awt.geom.Line2D$Float.y1:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.y1:F
         5: .line 220
            aload 7 /* drawLine */
            dup
            getfield java.awt.geom.Line2D$Float.y2:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.y2:F
         6: .line 221
            aload 7 /* drawLine */
            dup
            getfield java.awt.geom.Line2D$Float.x1:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.x1:F
         7: .line 223
            aload 1 /* g2d */
            aload 7 /* drawLine */
            invokevirtual java.awt.Graphics2D.draw:(Ljava/awt/Shape;)V
         8: .line 225
            aload 1 /* g2d */
            aload 6 /* saveStroke */
            invokevirtual java.awt.Graphics2D.setStroke:(Ljava/awt/Stroke;)V
         9: .line 226
            return
        end local 7 // java.awt.geom.Line2D$Float drawLine
        end local 6 // java.awt.Stroke saveStroke
        end local 5 // float y
        end local 4 // float x2
        end local 3 // float x1
        end local 2 // float thickness
        end local 1 // java.awt.Graphics2D g2d
        end local 0 // sun.font.Underline$IMGrayUnderline this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Lsun/font/Underline$IMGrayUnderline;
            0   10     1         g2d  Ljava/awt/Graphics2D;
            0   10     2   thickness  F
            0   10     3          x1  F
            0   10     4          x2  F
            0   10     5           y  F
            1   10     6  saveStroke  Ljava/awt/Stroke;
            3   10     7    drawLine  Ljava/awt/geom/Line2D$Float;
    MethodParameters:
           Name  Flags
      g2d        
      thickness  
      x1         
      x2         
      y          

  float getLowerDrawLimit(float);
    descriptor: (F)F
    flags: (0x0000) 
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.font.Underline$IMGrayUnderline this
        start local 1 // float thickness
         0: .line 230
            fconst_2
            freturn
        end local 1 // float thickness
        end local 0 // sun.font.Underline$IMGrayUnderline this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lsun/font/Underline$IMGrayUnderline;
            0    1     1  thickness  F
    MethodParameters:
           Name  Flags
      thickness  

  java.awt.Shape getUnderlineShape(float, float, float, float);
    descriptor: (FFFF)Ljava/awt/Shape;
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // sun.font.Underline$IMGrayUnderline this
        start local 1 // float thickness
        start local 2 // float x1
        start local 3 // float x2
        start local 4 // float y
         0: .line 238
            new java.awt.geom.GeneralPath
            dup
            invokespecial java.awt.geom.GeneralPath.<init>:()V
            astore 5 /* gp */
        start local 5 // java.awt.geom.GeneralPath gp
         1: .line 240
            new java.awt.geom.Line2D$Float
            dup
            fload 2 /* x1 */
            fload 4 /* y */
            fload 3 /* x2 */
            fload 4 /* y */
            invokespecial java.awt.geom.Line2D$Float.<init>:(FFFF)V
            astore 6 /* line */
        start local 6 // java.awt.geom.Line2D$Float line
         2: .line 241
            aload 5 /* gp */
            aload 0 /* this */
            getfield sun.font.Underline$IMGrayUnderline.stroke:Ljava/awt/BasicStroke;
            aload 6 /* line */
            invokevirtual java.awt.BasicStroke.createStrokedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
         3: .line 243
            aload 6 /* line */
            dup
            getfield java.awt.geom.Line2D$Float.y1:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.y1:F
         4: .line 244
            aload 6 /* line */
            dup
            getfield java.awt.geom.Line2D$Float.y2:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.y2:F
         5: .line 245
            aload 6 /* line */
            dup
            getfield java.awt.geom.Line2D$Float.x1:F
            fconst_1
            fadd
            putfield java.awt.geom.Line2D$Float.x1:F
         6: .line 247
            aload 5 /* gp */
            aload 0 /* this */
            getfield sun.font.Underline$IMGrayUnderline.stroke:Ljava/awt/BasicStroke;
            aload 6 /* line */
            invokevirtual java.awt.BasicStroke.createStrokedShape:(Ljava/awt/Shape;)Ljava/awt/Shape;
            iconst_0
            invokevirtual java.awt.geom.GeneralPath.append:(Ljava/awt/Shape;Z)V
         7: .line 249
            aload 5 /* gp */
            areturn
        end local 6 // java.awt.geom.Line2D$Float line
        end local 5 // java.awt.geom.GeneralPath gp
        end local 4 // float y
        end local 3 // float x2
        end local 2 // float x1
        end local 1 // float thickness
        end local 0 // sun.font.Underline$IMGrayUnderline this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lsun/font/Underline$IMGrayUnderline;
            0    8     1  thickness  F
            0    8     2         x1  F
            0    8     3         x2  F
            0    8     4          y  F
            1    8     5         gp  Ljava/awt/geom/GeneralPath;
            2    8     6       line  Ljava/awt/geom/Line2D$Float;
    MethodParameters:
           Name  Flags
      thickness  
      x1         
      x2         
      y          
}
SourceFile: "Underline.java"
NestHost: sun.font.Underline
InnerClasses:
  public Float = java.awt.geom.Line2D$Float of java.awt.geom.Line2D
  private IMGrayUnderline = sun.font.Underline$IMGrayUnderline of sun.font.Underline