public abstract class java.awt.geom.CubicCurve2D implements java.awt.Shape, java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.awt.geom.CubicCurve2D
  super_class: java.lang.Object
{
  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.geom.CubicCurve2D this
         0: .line 592
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 593
            return
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/awt/geom/CubicCurve2D;

  public abstract double getX1();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getY1();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.awt.geom.Point2D getP1();
    descriptor: ()Ljava/awt/geom/Point2D;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getCtrlX1();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getCtrlY1();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.awt.geom.Point2D getCtrlP1();
    descriptor: ()Ljava/awt/geom/Point2D;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getCtrlX2();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getCtrlY2();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.awt.geom.Point2D getCtrlP2();
    descriptor: ()Ljava/awt/geom/Point2D;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getX2();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract double getY2();
    descriptor: ()D
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.awt.geom.Point2D getP2();
    descriptor: ()Ljava/awt/geom/Point2D;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void setCurve(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      x1      
      y1      
      ctrlx1  
      ctrly1  
      ctrlx2  
      ctrly2  
      x2      
      y2      

  public void setCurve(double[], int);
    descriptor: ([DI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=18, locals=3, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // double[] coords
        start local 2 // int offset
         0: .line 731
            aload 0 /* this */
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_0
            iadd
            daload
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_1
            iadd
            daload
         1: .line 732
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_2
            iadd
            daload
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_3
            iadd
            daload
         2: .line 733
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_4
            iadd
            daload
            aload 1 /* coords */
            iload 2 /* offset */
            iconst_5
            iadd
            daload
         3: .line 734
            aload 1 /* coords */
            iload 2 /* offset */
            bipush 6
            iadd
            daload
            aload 1 /* coords */
            iload 2 /* offset */
            bipush 7
            iadd
            daload
         4: .line 731
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
         5: .line 735
            return
        end local 2 // int offset
        end local 1 // double[] coords
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/awt/geom/CubicCurve2D;
            0    6     1  coords  [D
            0    6     2  offset  I
    MethodParameters:
        Name  Flags
      coords  
      offset  

  public void setCurve(java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D, java.awt.geom.Point2D);
    descriptor: (Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;Ljava/awt/geom/Point2D;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=17, locals=5, args_size=5
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.Point2D p1
        start local 2 // java.awt.geom.Point2D cp1
        start local 3 // java.awt.geom.Point2D cp2
        start local 4 // java.awt.geom.Point2D p2
         0: .line 751
            aload 0 /* this */
            aload 1 /* p1 */
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* p1 */
            invokevirtual java.awt.geom.Point2D.getY:()D
            aload 2 /* cp1 */
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 2 /* cp1 */
            invokevirtual java.awt.geom.Point2D.getY:()D
         1: .line 752
            aload 3 /* cp2 */
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 3 /* cp2 */
            invokevirtual java.awt.geom.Point2D.getY:()D
            aload 4 /* p2 */
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 4 /* p2 */
            invokevirtual java.awt.geom.Point2D.getY:()D
         2: .line 751
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
         3: .line 753
            return
        end local 4 // java.awt.geom.Point2D p2
        end local 3 // java.awt.geom.Point2D cp2
        end local 2 // java.awt.geom.Point2D cp1
        end local 1 // java.awt.geom.Point2D p1
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/geom/CubicCurve2D;
            0    4     1    p1  Ljava/awt/geom/Point2D;
            0    4     2   cp1  Ljava/awt/geom/Point2D;
            0    4     3   cp2  Ljava/awt/geom/Point2D;
            0    4     4    p2  Ljava/awt/geom/Point2D;
    MethodParameters:
      Name  Flags
      p1    
      cp1   
      cp2   
      p2    

  public void setCurve(java.awt.geom.Point2D[], int);
    descriptor: ([Ljava/awt/geom/Point2D;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=18, locals=3, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.Point2D[] pts
        start local 2 // int offset
         0: .line 766
            aload 0 /* this */
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_0
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_0
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getY:()D
         1: .line 767
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_1
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_1
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getY:()D
         2: .line 768
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_2
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_2
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getY:()D
         3: .line 769
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_3
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* pts */
            iload 2 /* offset */
            iconst_3
            iadd
            aaload
            invokevirtual java.awt.geom.Point2D.getY:()D
         4: .line 766
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
         5: .line 770
            return
        end local 2 // int offset
        end local 1 // java.awt.geom.Point2D[] pts
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljava/awt/geom/CubicCurve2D;
            0    6     1     pts  [Ljava/awt/geom/Point2D;
            0    6     2  offset  I
    MethodParameters:
        Name  Flags
      pts     
      offset  

  public void setCurve(java.awt.geom.CubicCurve2D);
    descriptor: (Ljava/awt/geom/CubicCurve2D;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=17, locals=2, args_size=2
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.CubicCurve2D c
         0: .line 779
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
         1: .line 780
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            aload 1 /* c */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
         2: .line 779
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
         3: .line 781
            return
        end local 1 // java.awt.geom.CubicCurve2D c
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/geom/CubicCurve2D;
            0    4     1     c  Ljava/awt/geom/CubicCurve2D;
    MethodParameters:
      Name  Flags
      c     

  public static double getFlatnessSq(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=14, locals=16, args_size=8
        start local 0 // double x1
        start local 2 // double y1
        start local 4 // double ctrlx1
        start local 6 // double ctrly1
        start local 8 // double ctrlx2
        start local 10 // double ctrly2
        start local 12 // double x2
        start local 14 // double y2
         0: .line 812
            dload 0 /* x1 */
            dload 2 /* y1 */
            dload 12 /* x2 */
            dload 14 /* y2 */
            dload 4 /* ctrlx1 */
            dload 6 /* ctrly1 */
            invokestatic java.awt.geom.Line2D.ptSegDistSq:(DDDDDD)D
         1: .line 813
            dload 0 /* x1 */
            dload 2 /* y1 */
            dload 12 /* x2 */
            dload 14 /* y2 */
            dload 8 /* ctrlx2 */
            dload 10 /* ctrly2 */
            invokestatic java.awt.geom.Line2D.ptSegDistSq:(DDDDDD)D
         2: .line 812
            invokestatic java.lang.Math.max:(DD)D
            dreturn
        end local 14 // double y2
        end local 12 // double x2
        end local 10 // double ctrly2
        end local 8 // double ctrlx2
        end local 6 // double ctrly1
        end local 4 // double ctrlx1
        end local 2 // double y1
        end local 0 // double x1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      x1  D
            0    3     2      y1  D
            0    3     4  ctrlx1  D
            0    3     6  ctrly1  D
            0    3     8  ctrlx2  D
            0    3    10  ctrly2  D
            0    3    12      x2  D
            0    3    14      y2  D
    MethodParameters:
        Name  Flags
      x1      
      y1      
      ctrlx1  
      ctrly1  
      ctrlx2  
      ctrly2  
      x2      
      y2      

  public static double getFlatness(double, double, double, double, double, double, double, double);
    descriptor: (DDDDDDDD)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=16, locals=16, args_size=8
        start local 0 // double x1
        start local 2 // double y1
        start local 4 // double ctrlx1
        start local 6 // double ctrly1
        start local 8 // double ctrlx2
        start local 10 // double ctrly2
        start local 12 // double x2
        start local 14 // double y2
         0: .line 846
            dload 0 /* x1 */
            dload 2 /* y1 */
            dload 4 /* ctrlx1 */
            dload 6 /* ctrly1 */
         1: .line 847
            dload 8 /* ctrlx2 */
            dload 10 /* ctrly2 */
            dload 12 /* x2 */
            dload 14 /* y2 */
         2: .line 846
            invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
            invokestatic java.lang.Math.sqrt:(D)D
            dreturn
        end local 14 // double y2
        end local 12 // double x2
        end local 10 // double ctrly2
        end local 8 // double ctrlx2
        end local 6 // double ctrly1
        end local 4 // double ctrlx1
        end local 2 // double y1
        end local 0 // double x1
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0      x1  D
            0    3     2      y1  D
            0    3     4  ctrlx1  D
            0    3     6  ctrly1  D
            0    3     8  ctrlx2  D
            0    3    10  ctrly2  D
            0    3    12      x2  D
            0    3    14      y2  D
    MethodParameters:
        Name  Flags
      x1      
      y1      
      ctrlx1  
      ctrly1  
      ctrlx2  
      ctrly2  
      x2      
      y2      

  public static double getFlatnessSq(double[], int);
    descriptor: ([DI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=2, args_size=2
        start local 0 // double[] coords
        start local 1 // int offset
         0: .line 864
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_0
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_1
            iadd
            daload
         1: .line 865
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_2
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_3
            iadd
            daload
         2: .line 866
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_4
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_5
            iadd
            daload
         3: .line 867
            aload 0 /* coords */
            iload 1 /* offset */
            bipush 6
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            bipush 7
            iadd
            daload
         4: .line 864
            invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
            dreturn
        end local 1 // int offset
        end local 0 // double[] coords
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  coords  [D
            0    5     1  offset  I
    MethodParameters:
        Name  Flags
      coords  
      offset  

  public static double getFlatness(double[], int);
    descriptor: ([DI)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=2, args_size=2
        start local 0 // double[] coords
        start local 1 // int offset
         0: .line 884
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_0
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_1
            iadd
            daload
         1: .line 885
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_2
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_3
            iadd
            daload
         2: .line 886
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_4
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            iconst_5
            iadd
            daload
         3: .line 887
            aload 0 /* coords */
            iload 1 /* offset */
            bipush 6
            iadd
            daload
            aload 0 /* coords */
            iload 1 /* offset */
            bipush 7
            iadd
            daload
         4: .line 884
            invokestatic java.awt.geom.CubicCurve2D.getFlatness:(DDDDDDDD)D
            dreturn
        end local 1 // int offset
        end local 0 // double[] coords
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  coords  [D
            0    5     1  offset  I
    MethodParameters:
        Name  Flags
      coords  
      offset  

  public double getFlatnessSq();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=16, locals=1, args_size=1
        start local 0 // java.awt.geom.CubicCurve2D this
         0: .line 898
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
         1: .line 899
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
         2: .line 898
            invokestatic java.awt.geom.CubicCurve2D.getFlatnessSq:(DDDDDDDD)D
            dreturn
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/geom/CubicCurve2D;

  public double getFlatness();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=16, locals=1, args_size=1
        start local 0 // java.awt.geom.CubicCurve2D this
         0: .line 910
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
         1: .line 911
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
         2: .line 910
            invokestatic java.awt.geom.CubicCurve2D.getFlatness:(DDDDDDDD)D
            dreturn
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/awt/geom/CubicCurve2D;

  public void subdivide(java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D);
    descriptor: (Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.CubicCurve2D left
        start local 2 // java.awt.geom.CubicCurve2D right
         0: .line 926
            aload 0 /* this */
            aload 1 /* left */
            aload 2 /* right */
            invokestatic java.awt.geom.CubicCurve2D.subdivide:(Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
         1: .line 927
            return
        end local 2 // java.awt.geom.CubicCurve2D right
        end local 1 // java.awt.geom.CubicCurve2D left
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljava/awt/geom/CubicCurve2D;
            0    2     1   left  Ljava/awt/geom/CubicCurve2D;
            0    2     2  right  Ljava/awt/geom/CubicCurve2D;
    MethodParameters:
       Name  Flags
      left   
      right  

  public static void subdivide(java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D, java.awt.geom.CubicCurve2D);
    descriptor: (Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/CubicCurve2D;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=17, locals=31, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D src
        start local 1 // java.awt.geom.CubicCurve2D left
        start local 2 // java.awt.geom.CubicCurve2D right
         0: .line 945
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            dstore 3 /* x1 */
        start local 3 // double x1
         1: .line 946
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            dstore 5 /* y1 */
        start local 5 // double y1
         2: .line 947
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            dstore 7 /* ctrlx1 */
        start local 7 // double ctrlx1
         3: .line 948
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
            dstore 9 /* ctrly1 */
        start local 9 // double ctrly1
         4: .line 949
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            dstore 11 /* ctrlx2 */
        start local 11 // double ctrlx2
         5: .line 950
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
            dstore 13 /* ctrly2 */
        start local 13 // double ctrly2
         6: .line 951
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            dstore 15 /* x2 */
        start local 15 // double x2
         7: .line 952
            aload 0 /* src */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
            dstore 17 /* y2 */
        start local 17 // double y2
         8: .line 953
            dload 7 /* ctrlx1 */
            dload 11 /* ctrlx2 */
            dadd
            ldc 2.0
            ddiv
            dstore 19 /* centerx */
        start local 19 // double centerx
         9: .line 954
            dload 9 /* ctrly1 */
            dload 13 /* ctrly2 */
            dadd
            ldc 2.0
            ddiv
            dstore 21 /* centery */
        start local 21 // double centery
        10: .line 955
            dload 3 /* x1 */
            dload 7 /* ctrlx1 */
            dadd
            ldc 2.0
            ddiv
            dstore 7 /* ctrlx1 */
        11: .line 956
            dload 5 /* y1 */
            dload 9 /* ctrly1 */
            dadd
            ldc 2.0
            ddiv
            dstore 9 /* ctrly1 */
        12: .line 957
            dload 15 /* x2 */
            dload 11 /* ctrlx2 */
            dadd
            ldc 2.0
            ddiv
            dstore 11 /* ctrlx2 */
        13: .line 958
            dload 17 /* y2 */
            dload 13 /* ctrly2 */
            dadd
            ldc 2.0
            ddiv
            dstore 13 /* ctrly2 */
        14: .line 959
            dload 7 /* ctrlx1 */
            dload 19 /* centerx */
            dadd
            ldc 2.0
            ddiv
            dstore 23 /* ctrlx12 */
        start local 23 // double ctrlx12
        15: .line 960
            dload 9 /* ctrly1 */
            dload 21 /* centery */
            dadd
            ldc 2.0
            ddiv
            dstore 25 /* ctrly12 */
        start local 25 // double ctrly12
        16: .line 961
            dload 11 /* ctrlx2 */
            dload 19 /* centerx */
            dadd
            ldc 2.0
            ddiv
            dstore 27 /* ctrlx21 */
        start local 27 // double ctrlx21
        17: .line 962
            dload 13 /* ctrly2 */
            dload 21 /* centery */
            dadd
            ldc 2.0
            ddiv
            dstore 29 /* ctrly21 */
        start local 29 // double ctrly21
        18: .line 963
            dload 23 /* ctrlx12 */
            dload 27 /* ctrlx21 */
            dadd
            ldc 2.0
            ddiv
            dstore 19 /* centerx */
        19: .line 964
            dload 25 /* ctrly12 */
            dload 29 /* ctrly21 */
            dadd
            ldc 2.0
            ddiv
            dstore 21 /* centery */
        20: .line 965
            aload 1 /* left */
            ifnull 24
        21: .line 966
            aload 1 /* left */
            dload 3 /* x1 */
            dload 5 /* y1 */
            dload 7 /* ctrlx1 */
            dload 9 /* ctrly1 */
        22: .line 967
            dload 23 /* ctrlx12 */
            dload 25 /* ctrly12 */
            dload 19 /* centerx */
            dload 21 /* centery */
        23: .line 966
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
        24: .line 969
      StackMap locals: java.awt.geom.CubicCurve2D java.awt.geom.CubicCurve2D java.awt.geom.CubicCurve2D double double double double double double double double double double double double double double
      StackMap stack:
            aload 2 /* right */
            ifnull 28
        25: .line 970
            aload 2 /* right */
            dload 19 /* centerx */
            dload 21 /* centery */
            dload 27 /* ctrlx21 */
            dload 29 /* ctrly21 */
        26: .line 971
            dload 11 /* ctrlx2 */
            dload 13 /* ctrly2 */
            dload 15 /* x2 */
            dload 17 /* y2 */
        27: .line 970
            invokevirtual java.awt.geom.CubicCurve2D.setCurve:(DDDDDDDD)V
        28: .line 973
      StackMap locals:
      StackMap stack:
            return
        end local 29 // double ctrly21
        end local 27 // double ctrlx21
        end local 25 // double ctrly12
        end local 23 // double ctrlx12
        end local 21 // double centery
        end local 19 // double centerx
        end local 17 // double y2
        end local 15 // double x2
        end local 13 // double ctrly2
        end local 11 // double ctrlx2
        end local 9 // double ctrly1
        end local 7 // double ctrlx1
        end local 5 // double y1
        end local 3 // double x1
        end local 2 // java.awt.geom.CubicCurve2D right
        end local 1 // java.awt.geom.CubicCurve2D left
        end local 0 // java.awt.geom.CubicCurve2D src
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   29     0      src  Ljava/awt/geom/CubicCurve2D;
            0   29     1     left  Ljava/awt/geom/CubicCurve2D;
            0   29     2    right  Ljava/awt/geom/CubicCurve2D;
            1   29     3       x1  D
            2   29     5       y1  D
            3   29     7   ctrlx1  D
            4   29     9   ctrly1  D
            5   29    11   ctrlx2  D
            6   29    13   ctrly2  D
            7   29    15       x2  D
            8   29    17       y2  D
            9   29    19  centerx  D
           10   29    21  centery  D
           15   29    23  ctrlx12  D
           16   29    25  ctrly12  D
           17   29    27  ctrlx21  D
           18   29    29  ctrly21  D
    MethodParameters:
       Name  Flags
      src    
      left   
      right  

  public static void subdivide(double[], int, double[], int, double[], int);
    descriptor: ([DI[DI[DI)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=26, args_size=6
        start local 0 // double[] src
        start local 1 // int srcoff
        start local 2 // double[] left
        start local 3 // int leftoff
        start local 4 // double[] right
        start local 5 // int rightoff
         0: .line 1006
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_0
            iadd
            daload
            dstore 6 /* x1 */
        start local 6 // double x1
         1: .line 1007
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_1
            iadd
            daload
            dstore 8 /* y1 */
        start local 8 // double y1
         2: .line 1008
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_2
            iadd
            daload
            dstore 10 /* ctrlx1 */
        start local 10 // double ctrlx1
         3: .line 1009
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_3
            iadd
            daload
            dstore 12 /* ctrly1 */
        start local 12 // double ctrly1
         4: .line 1010
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_4
            iadd
            daload
            dstore 14 /* ctrlx2 */
        start local 14 // double ctrlx2
         5: .line 1011
            aload 0 /* src */
            iload 1 /* srcoff */
            iconst_5
            iadd
            daload
            dstore 16 /* ctrly2 */
        start local 16 // double ctrly2
         6: .line 1012
            aload 0 /* src */
            iload 1 /* srcoff */
            bipush 6
            iadd
            daload
            dstore 18 /* x2 */
        start local 18 // double x2
         7: .line 1013
            aload 0 /* src */
            iload 1 /* srcoff */
            bipush 7
            iadd
            daload
            dstore 20 /* y2 */
        start local 20 // double y2
         8: .line 1014
            aload 2 /* left */
            ifnull 11
         9: .line 1015
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_0
            iadd
            dload 6 /* x1 */
            dastore
        10: .line 1016
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_1
            iadd
            dload 8 /* y1 */
            dastore
        11: .line 1018
      StackMap locals: double[] int double[] int double[] int double double double double double double double double
      StackMap stack:
            aload 4 /* right */
            ifnull 14
        12: .line 1019
            aload 4 /* right */
            iload 5 /* rightoff */
            bipush 6
            iadd
            dload 18 /* x2 */
            dastore
        13: .line 1020
            aload 4 /* right */
            iload 5 /* rightoff */
            bipush 7
            iadd
            dload 20 /* y2 */
            dastore
        14: .line 1022
      StackMap locals:
      StackMap stack:
            dload 6 /* x1 */
            dload 10 /* ctrlx1 */
            dadd
            ldc 2.0
            ddiv
            dstore 6 /* x1 */
        15: .line 1023
            dload 8 /* y1 */
            dload 12 /* ctrly1 */
            dadd
            ldc 2.0
            ddiv
            dstore 8 /* y1 */
        16: .line 1024
            dload 18 /* x2 */
            dload 14 /* ctrlx2 */
            dadd
            ldc 2.0
            ddiv
            dstore 18 /* x2 */
        17: .line 1025
            dload 20 /* y2 */
            dload 16 /* ctrly2 */
            dadd
            ldc 2.0
            ddiv
            dstore 20 /* y2 */
        18: .line 1026
            dload 10 /* ctrlx1 */
            dload 14 /* ctrlx2 */
            dadd
            ldc 2.0
            ddiv
            dstore 22 /* centerx */
        start local 22 // double centerx
        19: .line 1027
            dload 12 /* ctrly1 */
            dload 16 /* ctrly2 */
            dadd
            ldc 2.0
            ddiv
            dstore 24 /* centery */
        start local 24 // double centery
        20: .line 1028
            dload 6 /* x1 */
            dload 22 /* centerx */
            dadd
            ldc 2.0
            ddiv
            dstore 10 /* ctrlx1 */
        21: .line 1029
            dload 8 /* y1 */
            dload 24 /* centery */
            dadd
            ldc 2.0
            ddiv
            dstore 12 /* ctrly1 */
        22: .line 1030
            dload 18 /* x2 */
            dload 22 /* centerx */
            dadd
            ldc 2.0
            ddiv
            dstore 14 /* ctrlx2 */
        23: .line 1031
            dload 20 /* y2 */
            dload 24 /* centery */
            dadd
            ldc 2.0
            ddiv
            dstore 16 /* ctrly2 */
        24: .line 1032
            dload 10 /* ctrlx1 */
            dload 14 /* ctrlx2 */
            dadd
            ldc 2.0
            ddiv
            dstore 22 /* centerx */
        25: .line 1033
            dload 12 /* ctrly1 */
            dload 16 /* ctrly2 */
            dadd
            ldc 2.0
            ddiv
            dstore 24 /* centery */
        26: .line 1034
            aload 2 /* left */
            ifnull 33
        27: .line 1035
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_2
            iadd
            dload 6 /* x1 */
            dastore
        28: .line 1036
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_3
            iadd
            dload 8 /* y1 */
            dastore
        29: .line 1037
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_4
            iadd
            dload 10 /* ctrlx1 */
            dastore
        30: .line 1038
            aload 2 /* left */
            iload 3 /* leftoff */
            iconst_5
            iadd
            dload 12 /* ctrly1 */
            dastore
        31: .line 1039
            aload 2 /* left */
            iload 3 /* leftoff */
            bipush 6
            iadd
            dload 22 /* centerx */
            dastore
        32: .line 1040
            aload 2 /* left */
            iload 3 /* leftoff */
            bipush 7
            iadd
            dload 24 /* centery */
            dastore
        33: .line 1042
      StackMap locals: double double
      StackMap stack:
            aload 4 /* right */
            ifnull 40
        34: .line 1043
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_0
            iadd
            dload 22 /* centerx */
            dastore
        35: .line 1044
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_1
            iadd
            dload 24 /* centery */
            dastore
        36: .line 1045
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_2
            iadd
            dload 14 /* ctrlx2 */
            dastore
        37: .line 1046
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_3
            iadd
            dload 16 /* ctrly2 */
            dastore
        38: .line 1047
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_4
            iadd
            dload 18 /* x2 */
            dastore
        39: .line 1048
            aload 4 /* right */
            iload 5 /* rightoff */
            iconst_5
            iadd
            dload 20 /* y2 */
            dastore
        40: .line 1050
      StackMap locals:
      StackMap stack:
            return
        end local 24 // double centery
        end local 22 // double centerx
        end local 20 // double y2
        end local 18 // double x2
        end local 16 // double ctrly2
        end local 14 // double ctrlx2
        end local 12 // double ctrly1
        end local 10 // double ctrlx1
        end local 8 // double y1
        end local 6 // double x1
        end local 5 // int rightoff
        end local 4 // double[] right
        end local 3 // int leftoff
        end local 2 // double[] left
        end local 1 // int srcoff
        end local 0 // double[] src
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   41     0       src  [D
            0   41     1    srcoff  I
            0   41     2      left  [D
            0   41     3   leftoff  I
            0   41     4     right  [D
            0   41     5  rightoff  I
            1   41     6        x1  D
            2   41     8        y1  D
            3   41    10    ctrlx1  D
            4   41    12    ctrly1  D
            5   41    14    ctrlx2  D
            6   41    16    ctrly2  D
            7   41    18        x2  D
            8   41    20        y2  D
           19   41    22   centerx  D
           20   41    24   centery  D
    MethodParameters:
          Name  Flags
      src       
      srcoff    
      left      
      leftoff   
      right     
      rightoff  

  public static int solveCubic(double[]);
    descriptor: ([D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // double[] eqn
         0: .line 1069
            aload 0 /* eqn */
            aload 0 /* eqn */
            invokestatic java.awt.geom.CubicCurve2D.solveCubic:([D[D)I
            ireturn
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   eqn  [D
    MethodParameters:
      Name  Flags
      eqn   

  public static int solveCubic(double[], double[]);
    descriptor: ([D[D)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=33, args_size=2
        start local 0 // double[] eqn
        start local 1 // double[] res
         0: .line 1092
            aload 0 /* eqn */
            iconst_3
            daload
            dstore 2 /* d */
        start local 2 // double d
         1: .line 1093
            dload 2 /* d */
            dconst_0
            dcmpl
            ifne 3
         2: .line 1094
            aload 0 /* eqn */
            aload 1 /* res */
            invokestatic java.awt.geom.QuadCurve2D.solveQuadratic:([D[D)I
            ireturn
         3: .line 1098
      StackMap locals: double
      StackMap stack:
            aload 0 /* eqn */
            iconst_2
            daload
            dload 2 /* d */
            ddiv
            dstore 4 /* A */
        start local 4 // double A
         4: .line 1099
            aload 0 /* eqn */
            iconst_1
            daload
            dload 2 /* d */
            ddiv
            dstore 6 /* B */
        start local 6 // double B
         5: .line 1100
            aload 0 /* eqn */
            iconst_0
            daload
            dload 2 /* d */
            ddiv
            dstore 8 /* C */
        start local 8 // double C
         6: .line 1111
            dload 4 /* A */
            dload 4 /* A */
            dmul
            dstore 10 /* sq_A */
        start local 10 // double sq_A
         7: .line 1112
            ldc 0.3333333333333333
            ldc -0.3333333333333333
            dload 10 /* sq_A */
            dmul
            dload 6 /* B */
            dadd
            dmul
            dstore 12 /* p */
        start local 12 // double p
         8: .line 1113
            ldc 0.5
            ldc 0.07407407407407407
            dload 4 /* A */
            dmul
            dload 10 /* sq_A */
            dmul
            ldc 0.3333333333333333
            dload 4 /* A */
            dmul
            dload 6 /* B */
            dmul
            dsub
            dload 8 /* C */
            dadd
            dmul
            dstore 14 /* q */
        start local 14 // double q
         9: .line 1117
            dload 12 /* p */
            dload 12 /* p */
            dmul
            dload 12 /* p */
            dmul
            dstore 16 /* cb_p */
        start local 16 // double cb_p
        10: .line 1118
            dload 14 /* q */
            dload 14 /* q */
            dmul
            dload 16 /* cb_p */
            dadd
            dstore 18 /* D */
        start local 18 // double D
        11: .line 1120
            ldc 0.3333333333333333
            dload 4 /* A */
            dmul
            dstore 20 /* sub */
        start local 20 // double sub
        12: .line 1123
            dload 18 /* D */
            dconst_0
            dcmpg
            ifge 27
        13: .line 1125
            ldc 0.3333333333333333
            dload 14 /* q */
            dneg
            dload 16 /* cb_p */
            dneg
            invokestatic java.lang.Math.sqrt:(D)D
            ddiv
            invokestatic java.lang.Math.acos:(D)D
            dmul
            dstore 23 /* phi */
        start local 23 // double phi
        14: .line 1126
            ldc 2.0
            dload 12 /* p */
            dneg
            invokestatic java.lang.Math.sqrt:(D)D
            dmul
            dstore 25 /* t */
        start local 25 // double t
        15: .line 1128
            aload 1 /* res */
            aload 0 /* eqn */
            if_acmpne 17
        16: .line 1129
            aload 0 /* eqn */
            iconst_4
            invokestatic java.util.Arrays.copyOf:([DI)[D
            astore 0 /* eqn */
        17: .line 1132
      StackMap locals: double[] double[] double double double double double double double double double double top double double
      StackMap stack:
            aload 1 /* res */
            iconst_0
            dload 25 /* t */
            dload 23 /* phi */
            invokestatic java.lang.Math.cos:(D)D
            dmul
            dastore
        18: .line 1133
            aload 1 /* res */
            iconst_1
            dload 25 /* t */
            dneg
            dload 23 /* phi */
            ldc 1.0471975511965976
            dadd
            invokestatic java.lang.Math.cos:(D)D
            dmul
            dastore
        19: .line 1134
            aload 1 /* res */
            iconst_2
            dload 25 /* t */
            dneg
            dload 23 /* phi */
            ldc 1.0471975511965976
            dsub
            invokestatic java.lang.Math.cos:(D)D
            dmul
            dastore
        20: .line 1135
            iconst_3
            istore 22 /* num */
        start local 22 // int num
        21: .line 1137
            iconst_0
            istore 27 /* i */
        start local 27 // int i
        22: goto 25
        23: .line 1138
      StackMap locals: double[] double[] double double double double double double double double double double int double double int
      StackMap stack:
            aload 1 /* res */
            iload 27 /* i */
            dup2
            daload
            dload 20 /* sub */
            dsub
            dastore
        24: .line 1137
            iinc 27 /* i */ 1
      StackMap locals:
      StackMap stack:
        25: iload 27 /* i */
            iload 22 /* num */
            if_icmplt 23
        end local 27 // int i
        end local 25 // double t
        end local 23 // double phi
        26: .line 1141
            goto 39
        end local 22 // int num
        27: .line 1144
      StackMap locals: double[] double[] double double double double double double double double double double
      StackMap stack:
            dload 18 /* D */
            invokestatic java.lang.Math.sqrt:(D)D
            dstore 23 /* sqrt_D */
        start local 23 // double sqrt_D
        28: .line 1145
            dload 23 /* sqrt_D */
            dload 14 /* q */
            dsub
            invokestatic java.lang.Math.cbrt:(D)D
            dstore 25 /* u */
        start local 25 // double u
        29: .line 1146
            dload 23 /* sqrt_D */
            dload 14 /* q */
            dadd
            invokestatic java.lang.Math.cbrt:(D)D
            dneg
            dstore 27 /* v */
        start local 27 // double v
        30: .line 1147
            dload 25 /* u */
            dload 27 /* v */
            dadd
            dstore 29 /* uv */
        start local 29 // double uv
        31: .line 1149
            iconst_1
            istore 22 /* num */
        start local 22 // int num
        32: .line 1151
            ldc 1.2E9
            dload 29 /* uv */
            invokestatic java.lang.Math.abs:(D)D
            dload 20 /* sub */
            invokestatic java.lang.Math.abs:(D)D
            dadd
            invokestatic java.lang.Math.ulp:(D)D
            dmul
            dstore 31 /* err */
        start local 31 // double err
        33: .line 1152
            dload 18 /* D */
            dload 31 /* err */
            invokestatic java.awt.geom.CubicCurve2D.iszero:(DD)Z
            ifne 34
            dload 25 /* u */
            dload 27 /* v */
            dload 31 /* err */
            invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
            ifeq 38
        34: .line 1153
      StackMap locals: double[] double[] double double double double double double double double double double int double double double double double
      StackMap stack:
            aload 1 /* res */
            aload 0 /* eqn */
            if_acmpne 36
        35: .line 1154
            aload 0 /* eqn */
            iconst_4
            invokestatic java.util.Arrays.copyOf:([DI)[D
            astore 0 /* eqn */
        36: .line 1156
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            iconst_1
            dload 29 /* uv */
            ldc 2.0
            ddiv
            dneg
            dload 20 /* sub */
            dsub
            dastore
        37: .line 1157
            iconst_2
            istore 22 /* num */
        38: .line 1160
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            iconst_0
            dload 29 /* uv */
            dload 20 /* sub */
            dsub
            dastore
        end local 31 // double err
        end local 29 // double uv
        end local 27 // double v
        end local 25 // double u
        end local 23 // double sqrt_D
        39: .line 1163
      StackMap locals: double[] double[] double double double double double double double double double double int
      StackMap stack:
            iload 22 /* num */
            iconst_1
            if_icmple 41
        40: .line 1164
            aload 0 /* eqn */
            aload 1 /* res */
            iload 22 /* num */
            invokestatic java.awt.geom.CubicCurve2D.fixRoots:([D[DI)I
            istore 22 /* num */
        41: .line 1166
      StackMap locals:
      StackMap stack:
            iload 22 /* num */
            iconst_2
            if_icmple 43
            aload 1 /* res */
            iconst_2
            daload
            aload 1 /* res */
            iconst_1
            daload
            dcmpl
            ifeq 42
            aload 1 /* res */
            iconst_2
            daload
            aload 1 /* res */
            iconst_0
            daload
            dcmpl
            ifne 43
        42: .line 1167
      StackMap locals:
      StackMap stack:
            iinc 22 /* num */ -1
        43: .line 1169
      StackMap locals:
      StackMap stack:
            iload 22 /* num */
            iconst_1
            if_icmple 45
            aload 1 /* res */
            iconst_1
            daload
            aload 1 /* res */
            iconst_0
            daload
            dcmpl
            ifne 45
        44: .line 1170
            aload 1 /* res */
            iconst_1
            aload 1 /* res */
            iinc 22 /* num */ -1
            iload 22 /* num */
            daload
            dastore
        45: .line 1172
      StackMap locals:
      StackMap stack:
            iload 22 /* num */
            ireturn
        end local 22 // int num
        end local 20 // double sub
        end local 18 // double D
        end local 16 // double cb_p
        end local 14 // double q
        end local 12 // double p
        end local 10 // double sq_A
        end local 8 // double C
        end local 6 // double B
        end local 4 // double A
        end local 2 // double d
        end local 1 // double[] res
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   46     0     eqn  [D
            0   46     1     res  [D
            1   46     2       d  D
            4   46     4       A  D
            5   46     6       B  D
            6   46     8       C  D
            7   46    10    sq_A  D
            8   46    12       p  D
            9   46    14       q  D
           10   46    16    cb_p  D
           11   46    18       D  D
           12   46    20     sub  D
           21   27    22     num  I
           32   46    22     num  I
           14   26    23     phi  D
           15   26    25       t  D
           22   26    27       i  I
           28   39    23  sqrt_D  D
           29   39    25       u  D
           30   39    27       v  D
           31   39    29      uv  D
           33   39    31     err  D
    MethodParameters:
      Name  Flags
      eqn   
      res   

  private static int fixRoots(double[], double[], int);
    descriptor: ([D[DI)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=19, args_size=3
        start local 0 // double[] eqn
        start local 1 // double[] res
        start local 2 // int num
         0: .line 1183
            iconst_3
            newarray 7
            dup
            iconst_0
            aload 0 /* eqn */
            iconst_1
            daload
            dastore
            dup
            iconst_1
            ldc 2.0
            aload 0 /* eqn */
            iconst_2
            daload
            dmul
            dastore
            dup
            iconst_2
            ldc 3.0
            aload 0 /* eqn */
            iconst_3
            daload
            dmul
            dastore
            astore 3 /* intervals */
        start local 3 // double[] intervals
         1: .line 1184
            aload 3 /* intervals */
            aload 3 /* intervals */
            invokestatic java.awt.geom.QuadCurve2D.solveQuadratic:([D[D)I
            istore 4 /* critCount */
        start local 4 // int critCount
         2: .line 1185
            iload 4 /* critCount */
            iconst_2
            if_icmpne 4
            aload 3 /* intervals */
            iconst_0
            daload
            aload 3 /* intervals */
            iconst_1
            daload
            dcmpl
            ifne 4
         3: .line 1186
            iinc 4 /* critCount */ -1
         4: .line 1188
      StackMap locals: double[] int
      StackMap stack:
            iload 4 /* critCount */
            iconst_2
            if_icmpne 8
            aload 3 /* intervals */
            iconst_0
            daload
            aload 3 /* intervals */
            iconst_1
            daload
            dcmpl
            ifle 8
         5: .line 1189
            aload 3 /* intervals */
            iconst_0
            daload
            dstore 5 /* tmp */
        start local 5 // double tmp
         6: .line 1190
            aload 3 /* intervals */
            iconst_0
            aload 3 /* intervals */
            iconst_1
            daload
            dastore
         7: .line 1191
            aload 3 /* intervals */
            iconst_1
            dload 5 /* tmp */
            dastore
        end local 5 // double tmp
         8: .line 1204
      StackMap locals:
      StackMap stack:
            iload 2 /* num */
            iconst_3
            if_icmpne 33
         9: .line 1205
            aload 0 /* eqn */
            invokestatic java.awt.geom.CubicCurve2D.getRootUpperBound:([D)D
            dstore 5 /* xe */
        start local 5 // double xe
        10: .line 1206
            dload 5 /* xe */
            dneg
            dstore 7 /* x0 */
        start local 7 // double x0
        11: .line 1208
            aload 1 /* res */
            iconst_0
            iload 2 /* num */
            invokestatic java.util.Arrays.sort:([DII)V
        12: .line 1209
            iload 4 /* critCount */
            iconst_2
            if_icmpne 17
        13: .line 1212
            aload 1 /* res */
            iconst_0
            aload 0 /* eqn */
            dload 7 /* x0 */
            aload 3 /* intervals */
            iconst_0
            daload
            aload 1 /* res */
            iconst_0
            daload
            invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
            dastore
        14: .line 1213
            aload 1 /* res */
            iconst_1
            aload 0 /* eqn */
            aload 3 /* intervals */
            iconst_0
            daload
            aload 3 /* intervals */
            iconst_1
            daload
            aload 1 /* res */
            iconst_1
            daload
            invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
            dastore
        15: .line 1214
            aload 1 /* res */
            iconst_2
            aload 0 /* eqn */
            aload 3 /* intervals */
            iconst_1
            daload
            dload 5 /* xe */
            aload 1 /* res */
            iconst_2
            daload
            invokestatic java.awt.geom.CubicCurve2D.refineRootWithHint:([DDDD)D
            dastore
        16: .line 1215
            iconst_3
            ireturn
        17: .line 1216
      StackMap locals: double double
      StackMap stack:
            iload 4 /* critCount */
            iconst_1
            if_icmpne 30
        18: .line 1220
            aload 0 /* eqn */
            iconst_3
            daload
            dstore 9 /* fxe */
        start local 9 // double fxe
        19: .line 1221
            dload 9 /* fxe */
            dneg
            dstore 11 /* fx0 */
        start local 11 // double fx0
        20: .line 1223
            aload 3 /* intervals */
            iconst_0
            daload
            dstore 13 /* x1 */
        start local 13 // double x1
        21: .line 1224
            aload 0 /* eqn */
            iconst_3
            dload 13 /* x1 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 15 /* fx1 */
        start local 15 // double fx1
        22: .line 1236
            dload 11 /* fx0 */
            dload 15 /* fx1 */
            invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
            ifeq 25
        23: .line 1237
            aload 1 /* res */
            iconst_0
            aload 0 /* eqn */
            dload 7 /* x0 */
            dload 13 /* x1 */
            aload 1 /* res */
            iconst_0
            daload
            invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
            dastore
        24: .line 1238
            goto 48
      StackMap locals: double[] double[] int double[] int double double double double double double
      StackMap stack:
        25: dload 15 /* fx1 */
            dload 9 /* fxe */
            invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
            ifeq 28
        26: .line 1239
            aload 1 /* res */
            iconst_0
            aload 0 /* eqn */
            dload 13 /* x1 */
            dload 5 /* xe */
            aload 1 /* res */
            iconst_2
            daload
            invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
            dastore
        27: .line 1240
            goto 48
        28: .line 1241
      StackMap locals:
      StackMap stack:
            aload 1 /* res */
            iconst_0
            dload 13 /* x1 */
            dastore
        end local 15 // double fx1
        end local 13 // double x1
        end local 11 // double fx0
        end local 9 // double fxe
        29: .line 1244
            goto 48
      StackMap locals: double[] double[] int double[] int double double
      StackMap stack:
        30: iload 4 /* critCount */
            ifne 48
        31: .line 1245
            aload 1 /* res */
            iconst_0
            aload 0 /* eqn */
            dload 7 /* x0 */
            dload 5 /* xe */
            aload 1 /* res */
            iconst_1
            daload
            invokestatic java.awt.geom.CubicCurve2D.bisectRootWithHint:([DDDD)D
            dastore
        end local 7 // double x0
        end local 5 // double xe
        32: .line 1248
            goto 48
      StackMap locals:
      StackMap stack:
        33: iload 2 /* num */
            iconst_2
            if_icmpne 48
            iload 4 /* critCount */
            iconst_2
            if_icmpne 48
        34: .line 1257
            aload 1 /* res */
            iconst_0
            daload
            dstore 5 /* goodRoot */
        start local 5 // double goodRoot
        35: .line 1258
            aload 1 /* res */
            iconst_1
            daload
            dstore 7 /* badRoot */
        start local 7 // double badRoot
        36: .line 1259
            aload 3 /* intervals */
            iconst_0
            daload
            dstore 9 /* x1 */
        start local 9 // double x1
        37: .line 1260
            aload 3 /* intervals */
            iconst_1
            daload
            dstore 11 /* x2 */
        start local 11 // double x2
        38: .line 1268
            dload 9 /* x1 */
            dload 5 /* goodRoot */
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dload 11 /* x2 */
            dload 5 /* goodRoot */
            dsub
            invokestatic java.lang.Math.abs:(D)D
            dcmpl
            ifle 39
            dload 9 /* x1 */
            goto 40
      StackMap locals: double[] double[] int double[] int double double double double
      StackMap stack:
        39: dload 11 /* x2 */
      StackMap locals:
      StackMap stack: double
        40: dstore 13 /* x */
        start local 13 // double x
        41: .line 1269
            aload 0 /* eqn */
            iconst_3
            dload 13 /* x */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 15 /* fx */
        start local 15 // double fx
        42: .line 1271
            dload 15 /* fx */
            ldc 1.0E7
            dload 13 /* x */
            invokestatic java.lang.Math.ulp:(D)D
            dmul
            invokestatic java.awt.geom.CubicCurve2D.iszero:(DD)Z
            ifeq 48
        43: .line 1272
            aload 0 /* eqn */
            iconst_3
            dload 7 /* badRoot */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 17 /* badRootVal */
        start local 17 // double badRootVal
        44: .line 1273
            aload 1 /* res */
            iconst_1
            dload 17 /* badRootVal */
            invokestatic java.lang.Math.abs:(D)D
            dload 15 /* fx */
            invokestatic java.lang.Math.abs:(D)D
            dcmpg
            ifge 45
            dload 7 /* badRoot */
            goto 46
      StackMap locals: double[] double[] int double[] int double double double double double double double
      StackMap stack: double[] int
        45: dload 13 /* x */
      StackMap locals: double[] double[] int double[] int double double double double double double double
      StackMap stack: double[] int double
        46: dastore
        47: .line 1274
            iconst_2
            ireturn
        end local 17 // double badRootVal
        end local 15 // double fx
        end local 13 // double x
        end local 11 // double x2
        end local 9 // double x1
        end local 7 // double badRoot
        end local 5 // double goodRoot
        48: .line 1278
      StackMap locals: double[] double[] int double[] int
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // int critCount
        end local 3 // double[] intervals
        end local 2 // int num
        end local 1 // double[] res
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   49     0         eqn  [D
            0   49     1         res  [D
            0   49     2         num  I
            1   49     3   intervals  [D
            2   49     4   critCount  I
            6    8     5         tmp  D
           10   32     5          xe  D
           11   32     7          x0  D
           19   29     9         fxe  D
           20   29    11         fx0  D
           21   29    13          x1  D
           22   29    15         fx1  D
           35   48     5    goodRoot  D
           36   48     7     badRoot  D
           37   48     9          x1  D
           38   48    11          x2  D
           41   48    13           x  D
           42   48    15          fx  D
           44   48    17  badRootVal  D
    MethodParameters:
      Name  Flags
      eqn   
      res   
      num   

  private static double refineRootWithHint(double[], double, double, double);
    descriptor: ([DDDD)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=19, args_size=4
        start local 0 // double[] eqn
        start local 1 // double min
        start local 3 // double max
        start local 5 // double t
         0: .line 1283
            dload 5 /* t */
            dload 1 /* min */
            dload 3 /* max */
            invokestatic java.awt.geom.CubicCurve2D.inInterval:(DDD)Z
            ifne 2
         1: .line 1284
            dload 5 /* t */
            dreturn
         2: .line 1286
      StackMap locals:
      StackMap stack:
            iconst_3
            newarray 7
            dup
            iconst_0
            aload 0 /* eqn */
            iconst_1
            daload
            dastore
            dup
            iconst_1
            ldc 2.0
            aload 0 /* eqn */
            iconst_2
            daload
            dmul
            dastore
            dup
            iconst_2
            ldc 3.0
            aload 0 /* eqn */
            iconst_3
            daload
            dmul
            dastore
            astore 7 /* deriv */
        start local 7 // double[] deriv
         3: .line 1287
            dload 5 /* t */
            dstore 8 /* origt */
        start local 8 // double origt
         4: .line 1288
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         5: goto 14
         6: .line 1289
      StackMap locals: double[] double int
      StackMap stack:
            aload 7 /* deriv */
            iconst_2
            dload 5 /* t */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 11 /* slope */
        start local 11 // double slope
         7: .line 1290
            aload 0 /* eqn */
            iconst_3
            dload 5 /* t */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 13 /* y */
        start local 13 // double y
         8: .line 1291
            dload 13 /* y */
            dload 11 /* slope */
            ddiv
            dneg
            dstore 15 /* delta */
        start local 15 // double delta
         9: .line 1292
            dload 5 /* t */
            dload 15 /* delta */
            dadd
            dstore 17 /* newt */
        start local 17 // double newt
        10: .line 1294
            dload 11 /* slope */
            dconst_0
            dcmpl
            ifeq 15
            dload 13 /* y */
            dconst_0
            dcmpl
            ifeq 15
            dload 5 /* t */
            dload 17 /* newt */
            dcmpl
            ifne 12
        11: .line 1295
            goto 15
        12: .line 1298
      StackMap locals: double[] double double double double[] double int double double double double
      StackMap stack:
            dload 17 /* newt */
            dstore 5 /* t */
        end local 17 // double newt
        end local 15 // double delta
        end local 13 // double y
        end local 11 // double slope
        13: .line 1288
            iinc 10 /* i */ 1
      StackMap locals: double[] double double double double[] double int
      StackMap stack:
        14: iload 10 /* i */
            iconst_3
            if_icmplt 6
        end local 10 // int i
        15: .line 1300
      StackMap locals:
      StackMap stack:
            dload 5 /* t */
            dload 8 /* origt */
            ldc 1000.0
            dload 8 /* origt */
            invokestatic java.lang.Math.ulp:(D)D
            dmul
            invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
            ifeq 17
            dload 5 /* t */
            dload 1 /* min */
            dload 3 /* max */
            invokestatic java.awt.geom.CubicCurve2D.inInterval:(DDD)Z
            ifeq 17
        16: .line 1301
            dload 5 /* t */
            dreturn
        17: .line 1303
      StackMap locals:
      StackMap stack:
            dload 8 /* origt */
            dreturn
        end local 8 // double origt
        end local 7 // double[] deriv
        end local 5 // double t
        end local 3 // double max
        end local 1 // double min
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   18     0    eqn  [D
            0   18     1    min  D
            0   18     3    max  D
            0   18     5      t  D
            3   18     7  deriv  [D
            4   18     8  origt  D
            5   15    10      i  I
            7   13    11  slope  D
            8   13    13      y  D
            9   13    15  delta  D
           10   13    17   newt  D
    MethodParameters:
      Name  Flags
      eqn   
      min   
      max   
      t     

  private static double bisectRootWithHint(double[], double, double, double);
    descriptor: ([DDDD)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=19, args_size=4
        start local 0 // double[] eqn
        start local 1 // double x0
        start local 3 // double xe
        start local 5 // double hint
         0: .line 1307
            dload 5 /* hint */
            dload 1 /* x0 */
            dsub
            invokestatic java.lang.Math.abs:(D)D
            ldc 64.0
            ddiv
            ldc 0.0625
            invokestatic java.lang.Math.min:(DD)D
            dstore 7 /* delta1 */
        start local 7 // double delta1
         1: .line 1308
            dload 5 /* hint */
            dload 3 /* xe */
            dsub
            invokestatic java.lang.Math.abs:(D)D
            ldc 64.0
            ddiv
            ldc 0.0625
            invokestatic java.lang.Math.min:(DD)D
            dstore 9 /* delta2 */
        start local 9 // double delta2
         2: .line 1309
            dload 5 /* hint */
            dload 7 /* delta1 */
            dsub
            dstore 11 /* x02 */
        start local 11 // double x02
         3: .line 1310
            dload 5 /* hint */
            dload 9 /* delta2 */
            dadd
            dstore 13 /* xe2 */
        start local 13 // double xe2
         4: .line 1311
            aload 0 /* eqn */
            iconst_3
            dload 11 /* x02 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 15 /* fx02 */
        start local 15 // double fx02
         5: .line 1312
            aload 0 /* eqn */
            iconst_3
            dload 13 /* xe2 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 17 /* fxe2 */
        start local 17 // double fxe2
         6: .line 1313
            goto 17
         7: .line 1314
      StackMap locals: double[] double double double double double double double double double
      StackMap stack:
            dload 11 /* x02 */
            dload 13 /* xe2 */
            dcmpl
            iflt 9
         8: .line 1315
            dload 11 /* x02 */
            dreturn
         9: .line 1317
      StackMap locals:
      StackMap stack:
            dload 11 /* x02 */
            dstore 1 /* x0 */
        10: .line 1318
            dload 13 /* xe2 */
            dstore 3 /* xe */
        11: .line 1319
            dload 7 /* delta1 */
            ldc 64.0
            ddiv
            dstore 7 /* delta1 */
        12: .line 1320
            dload 9 /* delta2 */
            ldc 64.0
            ddiv
            dstore 9 /* delta2 */
        13: .line 1321
            dload 5 /* hint */
            dload 7 /* delta1 */
            dsub
            dstore 11 /* x02 */
        14: .line 1322
            dload 5 /* hint */
            dload 9 /* delta2 */
            dadd
            dstore 13 /* xe2 */
        15: .line 1323
            aload 0 /* eqn */
            iconst_3
            dload 11 /* x02 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 15 /* fx02 */
        16: .line 1324
            aload 0 /* eqn */
            iconst_3
            dload 13 /* xe2 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 17 /* fxe2 */
        17: .line 1313
      StackMap locals:
      StackMap stack:
            dload 15 /* fx02 */
            dload 17 /* fxe2 */
            invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
            ifne 7
        18: .line 1326
            dload 15 /* fx02 */
            dconst_0
            dcmpl
            ifne 20
        19: .line 1327
            dload 11 /* x02 */
            dreturn
        20: .line 1329
      StackMap locals:
      StackMap stack:
            dload 17 /* fxe2 */
            dconst_0
            dcmpl
            ifne 22
        21: .line 1330
            dload 13 /* xe2 */
            dreturn
        22: .line 1333
      StackMap locals:
      StackMap stack:
            aload 0 /* eqn */
            dload 1 /* x0 */
            dload 3 /* xe */
            invokestatic java.awt.geom.CubicCurve2D.bisectRoot:([DDD)D
            dreturn
        end local 17 // double fxe2
        end local 15 // double fx02
        end local 13 // double xe2
        end local 11 // double x02
        end local 9 // double delta2
        end local 7 // double delta1
        end local 5 // double hint
        end local 3 // double xe
        end local 1 // double x0
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0     eqn  [D
            0   23     1      x0  D
            0   23     3      xe  D
            0   23     5    hint  D
            1   23     7  delta1  D
            2   23     9  delta2  D
            3   23    11     x02  D
            4   23    13     xe2  D
            5   23    15    fx02  D
            6   23    17    fxe2  D
    MethodParameters:
      Name  Flags
      eqn   
      x0    
      xe    
      hint  

  private static double bisectRoot(double[], double, double);
    descriptor: ([DDD)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // double[] eqn
        start local 1 // double x0
        start local 3 // double xe
         0: .line 1337
            aload 0 /* eqn */
            iconst_3
            dload 1 /* x0 */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 5 /* fx0 */
        start local 5 // double fx0
         1: .line 1338
            dload 1 /* x0 */
            dload 3 /* xe */
            dload 1 /* x0 */
            dsub
            ldc 2.0
            ddiv
            dadd
            dstore 7 /* m */
        start local 7 // double m
         2: .line 1339
            goto 12
         3: .line 1340
      StackMap locals: double double
      StackMap stack:
            aload 0 /* eqn */
            iconst_3
            dload 7 /* m */
            invokestatic java.awt.geom.CubicCurve2D.solveEqn:([DID)D
            dstore 9 /* fm */
        start local 9 // double fm
         4: .line 1341
            dload 9 /* fm */
            dconst_0
            dcmpl
            ifne 6
         5: .line 1342
            dload 7 /* m */
            dreturn
         6: .line 1344
      StackMap locals: double
      StackMap stack:
            dload 5 /* fx0 */
            dload 9 /* fm */
            invokestatic java.awt.geom.CubicCurve2D.oppositeSigns:(DD)Z
            ifeq 9
         7: .line 1345
            dload 7 /* m */
            dstore 3 /* xe */
         8: .line 1346
            goto 11
         9: .line 1347
      StackMap locals:
      StackMap stack:
            dload 9 /* fm */
            dstore 5 /* fx0 */
        10: .line 1348
            dload 7 /* m */
            dstore 1 /* x0 */
        11: .line 1350
      StackMap locals:
      StackMap stack:
            dload 1 /* x0 */
            dload 3 /* xe */
            dload 1 /* x0 */
            dsub
            ldc 2.0
            ddiv
            dadd
            dstore 7 /* m */
        end local 9 // double fm
        12: .line 1339
      StackMap locals:
      StackMap stack:
            dload 7 /* m */
            dload 1 /* x0 */
            dcmpl
            ifeq 13
            dload 7 /* m */
            dload 3 /* xe */
            dcmpl
            ifne 3
        13: .line 1352
      StackMap locals:
      StackMap stack:
            dload 7 /* m */
            dreturn
        end local 7 // double m
        end local 5 // double fx0
        end local 3 // double xe
        end local 1 // double x0
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0   eqn  [D
            0   14     1    x0  D
            0   14     3    xe  D
            1   14     5   fx0  D
            2   14     7     m  D
            4   12     9    fm  D
    MethodParameters:
      Name  Flags
      eqn   
      x0    
      xe    

  private static boolean inInterval(double, double, double);
    descriptor: (DDD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // double t
        start local 2 // double min
        start local 4 // double max
         0: .line 1356
            dload 2 /* min */
            dload 0 /* t */
            dcmpg
            ifgt 1
            dload 0 /* t */
            dload 4 /* max */
            dcmpg
            ifgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 4 // double max
        end local 2 // double min
        end local 0 // double t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  D
            0    2     2   min  D
            0    2     4   max  D
    MethodParameters:
      Name  Flags
      t     
      min   
      max   

  private static boolean within(double, double, double);
    descriptor: (DDD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // double x
        start local 2 // double y
        start local 4 // double err
         0: .line 1360
            dload 2 /* y */
            dload 0 /* x */
            dsub
            dstore 6 /* d */
        start local 6 // double d
         1: .line 1361
            dload 6 /* d */
            dload 4 /* err */
            dcmpg
            ifgt 2
            dload 6 /* d */
            dload 4 /* err */
            dneg
            dcmpl
            iflt 2
            iconst_1
            ireturn
      StackMap locals: double
      StackMap stack:
         2: iconst_0
            ireturn
        end local 6 // double d
        end local 4 // double err
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0     x  D
            0    3     2     y  D
            0    3     4   err  D
            1    3     6     d  D
    MethodParameters:
      Name  Flags
      x     
      y     
      err   

  private static boolean iszero(double, double);
    descriptor: (DD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // double x
        start local 2 // double err
         0: .line 1365
            dload 0 /* x */
            dconst_0
            dload 2 /* err */
            invokestatic java.awt.geom.CubicCurve2D.within:(DDD)Z
            ireturn
        end local 2 // double err
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  D
            0    1     2   err  D
    MethodParameters:
      Name  Flags
      x     
      err   

  private static boolean oppositeSigns(double, double);
    descriptor: (DD)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // double x1
        start local 2 // double x2
         0: .line 1369
            dload 0 /* x1 */
            dconst_0
            dcmpg
            ifge 1
            dload 2 /* x2 */
            dconst_0
            dcmpl
            ifgt 3
      StackMap locals:
      StackMap stack:
         1: dload 0 /* x1 */
            dconst_0
            dcmpl
            ifle 2
            dload 2 /* x2 */
            dconst_0
            dcmpg
            iflt 3
      StackMap locals:
      StackMap stack:
         2: iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 2 // double x2
        end local 0 // double x1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    x1  D
            0    4     2    x2  D
    MethodParameters:
      Name  Flags
      x1    
      x2    

  private static double solveEqn(double[], int, double);
    descriptor: ([DID)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // double[] eqn
        start local 1 // int order
        start local 2 // double t
         0: .line 1373
            aload 0 /* eqn */
            iload 1 /* order */
            daload
            dstore 4 /* v */
        start local 4 // double v
         1: .line 1374
            goto 3
         2: .line 1375
      StackMap locals: double
      StackMap stack:
            dload 4 /* v */
            dload 2 /* t */
            dmul
            aload 0 /* eqn */
            iload 1 /* order */
            daload
            dadd
            dstore 4 /* v */
         3: .line 1374
      StackMap locals:
      StackMap stack:
            iinc 1 /* order */ -1
            iload 1 /* order */
            ifge 2
         4: .line 1377
            dload 4 /* v */
            dreturn
        end local 4 // double v
        end local 2 // double t
        end local 1 // int order
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0    eqn  [D
            0    5     1  order  I
            0    5     2      t  D
            1    5     4      v  D
    MethodParameters:
       Name  Flags
      eqn    
      order  
      t      

  private static double getRootUpperBound(double[]);
    descriptor: ([D)D
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=1
        start local 0 // double[] eqn
         0: .line 1389
            aload 0 /* eqn */
            iconst_3
            daload
            dstore 1 /* d */
        start local 1 // double d
         1: .line 1390
            aload 0 /* eqn */
            iconst_2
            daload
            dstore 3 /* a */
        start local 3 // double a
         2: .line 1391
            aload 0 /* eqn */
            iconst_1
            daload
            dstore 5 /* b */
        start local 5 // double b
         3: .line 1392
            aload 0 /* eqn */
            iconst_0
            daload
            dstore 7 /* c */
        start local 7 // double c
         4: .line 1394
            dconst_1
            dload 3 /* a */
            invokestatic java.lang.Math.abs:(D)D
            dload 5 /* b */
            invokestatic java.lang.Math.abs:(D)D
            invokestatic java.lang.Math.max:(DD)D
            dload 7 /* c */
            invokestatic java.lang.Math.abs:(D)D
            invokestatic java.lang.Math.max:(DD)D
            dload 1 /* d */
            invokestatic java.lang.Math.abs:(D)D
            ddiv
            dadd
            dstore 9 /* M */
        start local 9 // double M
         5: .line 1395
            dload 9 /* M */
            dload 9 /* M */
            invokestatic java.lang.Math.ulp:(D)D
            dconst_1
            dadd
            dadd
            dstore 9 /* M */
         6: .line 1396
            dload 9 /* M */
            dreturn
        end local 9 // double M
        end local 7 // double c
        end local 5 // double b
        end local 3 // double a
        end local 1 // double d
        end local 0 // double[] eqn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0   eqn  [D
            1    7     1     d  D
            2    7     3     a  D
            3    7     5     b  D
            4    7     7     c  D
            5    7     9     M  D
    MethodParameters:
      Name  Flags
      eqn   

  public boolean contains(double, double);
    descriptor: (DD)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=22, locals=14, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // double x
        start local 3 // double y
         0: .line 1405
            dload 1 /* x */
            dconst_0
            dmul
            dload 3 /* y */
            dconst_0
            dmul
            dadd
            dconst_0
            dcmpl
            ifeq 2
         1: .line 1411
            iconst_0
            ireturn
         2: .line 1415
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            dstore 5 /* x1 */
        start local 5 // double x1
         3: .line 1416
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            dstore 7 /* y1 */
        start local 7 // double y1
         4: .line 1417
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            dstore 9 /* x2 */
        start local 9 // double x2
         5: .line 1418
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
            dstore 11 /* y2 */
        start local 11 // double y2
         6: .line 1420
            dload 1 /* x */
            dload 3 /* y */
            dload 5 /* x1 */
            dload 7 /* y1 */
            dload 9 /* x2 */
            dload 11 /* y2 */
            invokestatic sun.awt.geom.Curve.pointCrossingsForLine:(DDDDDD)I
         7: .line 1421
            dload 1 /* x */
            dload 3 /* y */
         8: .line 1422
            dload 5 /* x1 */
            dload 7 /* y1 */
         9: .line 1423
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
        10: .line 1424
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
        11: .line 1425
            dload 9 /* x2 */
            dload 11 /* y2 */
            iconst_0
        12: .line 1421
            invokestatic sun.awt.geom.Curve.pointCrossingsForCubic:(DDDDDDDDDDI)I
        13: .line 1420
            iadd
        14: .line 1419
            istore 13 /* crossings */
        start local 13 // int crossings
        15: .line 1426
            iload 13 /* crossings */
            iconst_1
            iand
            iconst_1
            if_icmpne 16
            iconst_1
            ireturn
      StackMap locals: java.awt.geom.CubicCurve2D double double double double double double int
      StackMap stack:
        16: iconst_0
            ireturn
        end local 13 // int crossings
        end local 11 // double y2
        end local 9 // double x2
        end local 7 // double y1
        end local 5 // double x1
        end local 3 // double y
        end local 1 // double x
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0       this  Ljava/awt/geom/CubicCurve2D;
            0   17     1          x  D
            0   17     3          y  D
            3   17     5         x1  D
            4   17     7         y1  D
            5   17     9         x2  D
            6   17    11         y2  D
           15   17    13  crossings  I
    MethodParameters:
      Name  Flags
      x     
      y     

  public boolean contains(java.awt.geom.Point2D);
    descriptor: (Ljava/awt/geom/Point2D;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.Point2D p
         0: .line 1434
            aload 0 /* this */
            aload 1 /* p */
            invokevirtual java.awt.geom.Point2D.getX:()D
            aload 1 /* p */
            invokevirtual java.awt.geom.Point2D.getY:()D
            invokevirtual java.awt.geom.CubicCurve2D.contains:(DD)Z
            ireturn
        end local 1 // java.awt.geom.Point2D p
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/geom/CubicCurve2D;
            0    1     1     p  Ljava/awt/geom/Point2D;
    MethodParameters:
      Name  Flags
      p     

  public boolean intersects(double, double, double, double);
    descriptor: (DDDD)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=10, args_size=5
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double w
        start local 7 // double h
         0: .line 1443
            dload 5 /* w */
            dconst_0
            dcmpg
            ifle 1
            dload 7 /* h */
            dconst_0
            dcmpg
            ifgt 2
         1: .line 1444
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dload 1 /* x */
            dload 3 /* y */
            dload 5 /* w */
            dload 7 /* h */
            invokevirtual java.awt.geom.CubicCurve2D.rectCrossings:(DDDD)I
            istore 9 /* numCrossings */
        start local 9 // int numCrossings
         3: .line 1453
            iload 9 /* numCrossings */
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         4: iconst_0
            ireturn
        end local 9 // int numCrossings
        end local 7 // double h
        end local 5 // double w
        end local 3 // double y
        end local 1 // double x
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Ljava/awt/geom/CubicCurve2D;
            0    5     1             x  D
            0    5     3             y  D
            0    5     5             w  D
            0    5     7             h  D
            3    5     9  numCrossings  I
    MethodParameters:
      Name  Flags
      x     
      y     
      w     
      h     

  public boolean intersects(java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/geom/Rectangle2D;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.Rectangle2D r
         0: .line 1461
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            invokevirtual java.awt.geom.CubicCurve2D.intersects:(DDDD)Z
            ireturn
        end local 1 // java.awt.geom.Rectangle2D r
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/geom/CubicCurve2D;
            0    1     1     r  Ljava/awt/geom/Rectangle2D;
    MethodParameters:
      Name  Flags
      r     

  public boolean contains(double, double, double, double);
    descriptor: (DDDD)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=10, args_size=5
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double w
        start local 7 // double h
         0: .line 1469
            dload 5 /* w */
            dconst_0
            dcmpg
            ifle 1
            dload 7 /* h */
            dconst_0
            dcmpg
            ifgt 2
         1: .line 1470
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 1473
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dload 1 /* x */
            dload 3 /* y */
            dload 5 /* w */
            dload 7 /* h */
            invokevirtual java.awt.geom.CubicCurve2D.rectCrossings:(DDDD)I
            istore 9 /* numCrossings */
        start local 9 // int numCrossings
         3: .line 1474
            iload 9 /* numCrossings */
            ifeq 4
            iload 9 /* numCrossings */
            ldc -2147483648
            if_icmpne 5
      StackMap locals: int
      StackMap stack:
         4: iconst_0
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 9 // int numCrossings
        end local 7 // double h
        end local 5 // double w
        end local 3 // double y
        end local 1 // double x
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0          this  Ljava/awt/geom/CubicCurve2D;
            0    7     1             x  D
            0    7     3             y  D
            0    7     5             w  D
            0    7     7             h  D
            3    7     9  numCrossings  I
    MethodParameters:
      Name  Flags
      x     
      y     
      w     
      h     

  private int rectCrossings(double, double, double, double);
    descriptor: (DDDD)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=26, locals=10, args_size=5
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // double x
        start local 3 // double y
        start local 5 // double w
        start local 7 // double h
         0: .line 1478
            iconst_0
            istore 9 /* crossings */
        start local 9 // int crossings
         1: .line 1479
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            dcmpl
            ifne 2
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
            dcmpl
            ifeq 10
         2: .line 1480
      StackMap locals: int
      StackMap stack:
            iload 9 /* crossings */
         3: .line 1481
            dload 1 /* x */
            dload 3 /* y */
         4: .line 1482
            dload 1 /* x */
            dload 5 /* w */
            dadd
            dload 3 /* y */
            dload 7 /* h */
            dadd
         5: .line 1483
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
         6: .line 1484
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
         7: .line 1480
            invokestatic sun.awt.geom.Curve.rectCrossingsForLine:(IDDDDDDDD)I
            istore 9 /* crossings */
         8: .line 1485
            iload 9 /* crossings */
            ldc -2147483648
            if_icmpne 10
         9: .line 1486
            iload 9 /* crossings */
            ireturn
        10: .line 1491
      StackMap locals:
      StackMap stack:
            iload 9 /* crossings */
        11: .line 1492
            dload 1 /* x */
            dload 3 /* y */
        12: .line 1493
            dload 1 /* x */
            dload 5 /* w */
            dadd
            dload 3 /* y */
            dload 7 /* h */
            dadd
        13: .line 1494
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY2:()D
        14: .line 1495
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX2:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY2:()D
        15: .line 1496
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getCtrlY1:()D
        16: .line 1497
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getX1:()D
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getY1:()D
            iconst_0
        17: .line 1491
            invokestatic sun.awt.geom.Curve.rectCrossingsForCubic:(IDDDDDDDDDDDDI)I
            ireturn
        end local 9 // int crossings
        end local 7 // double h
        end local 5 // double w
        end local 3 // double y
        end local 1 // double x
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Ljava/awt/geom/CubicCurve2D;
            0   18     1          x  D
            0   18     3          y  D
            0   18     5          w  D
            0   18     7          h  D
            1   18     9  crossings  I
    MethodParameters:
      Name  Flags
      x     
      y     
      w     
      h     

  public boolean contains(java.awt.geom.Rectangle2D);
    descriptor: (Ljava/awt/geom/Rectangle2D;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=2, args_size=2
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.Rectangle2D r
         0: .line 1505
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getX:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getY:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getWidth:()D
            aload 1 /* r */
            invokevirtual java.awt.geom.Rectangle2D.getHeight:()D
            invokevirtual java.awt.geom.CubicCurve2D.contains:(DDDD)Z
            ireturn
        end local 1 // java.awt.geom.Rectangle2D r
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/geom/CubicCurve2D;
            0    1     1     r  Ljava/awt/geom/Rectangle2D;
    MethodParameters:
      Name  Flags
      r     

  public java.awt.Rectangle getBounds();
    descriptor: ()Ljava/awt/Rectangle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.awt.geom.CubicCurve2D this
         0: .line 1513
            aload 0 /* this */
            invokevirtual java.awt.geom.CubicCurve2D.getBounds2D:()Ljava/awt/geom/Rectangle2D;
            invokevirtual java.awt.geom.Rectangle2D.getBounds:()Ljava/awt/Rectangle;
            areturn
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/geom/CubicCurve2D;

  public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform);
    descriptor: (Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.AffineTransform at
         0: .line 1533
            new java.awt.geom.CubicIterator
            dup
            aload 0 /* this */
            aload 1 /* at */
            invokespecial java.awt.geom.CubicIterator.<init>:(Ljava/awt/geom/CubicCurve2D;Ljava/awt/geom/AffineTransform;)V
            areturn
        end local 1 // java.awt.geom.AffineTransform at
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/awt/geom/CubicCurve2D;
            0    1     1    at  Ljava/awt/geom/AffineTransform;
    MethodParameters:
      Name  Flags
      at    

  public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform, double);
    descriptor: (Ljava/awt/geom/AffineTransform;D)Ljava/awt/geom/PathIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // java.awt.geom.CubicCurve2D this
        start local 1 // java.awt.geom.AffineTransform at
        start local 2 // double flatness
         0: .line 1556
            new java.awt.geom.FlatteningPathIterator
            dup
            aload 0 /* this */
            aload 1 /* at */
            invokevirtual java.awt.geom.CubicCurve2D.getPathIterator:(Ljava/awt/geom/AffineTransform;)Ljava/awt/geom/PathIterator;
            dload 2 /* flatness */
            invokespecial java.awt.geom.FlatteningPathIterator.<init>:(Ljava/awt/geom/PathIterator;D)V
            areturn
        end local 2 // double flatness
        end local 1 // java.awt.geom.AffineTransform at
        end local 0 // java.awt.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Ljava/awt/geom/CubicCurve2D;
            0    1     1        at  Ljava/awt/geom/AffineTransform;
            0    1     2  flatness  D
    MethodParameters:
          Name  Flags
      at        
      flatness  

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.awt.geom.CubicCurve2D this
         0: .line 1569
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 1570
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 1572
            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.geom.CubicCurve2D this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/awt/geom/CubicCurve2D;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException
}
SourceFile: "CubicCurve2D.java"
NestMembers:
  java.awt.geom.CubicCurve2D$Double  java.awt.geom.CubicCurve2D$Float
InnerClasses:
  public Double = java.awt.geom.CubicCurve2D$Double of java.awt.geom.CubicCurve2D
  public Float = java.awt.geom.CubicCurve2D$Float of java.awt.geom.CubicCurve2D