public class android.animation.PathKeyframes implements android.animation.Keyframes
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.animation.PathKeyframes
  super_class: java.lang.Object
{
  private static final int FRACTION_OFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int X_OFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int Y_OFFSET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int NUM_COMPONENTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final java.util.ArrayList<android.animation.Keyframe> EMPTY_KEYFRAMES;
    descriptor: Ljava/util/ArrayList;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/animation/Keyframe;>;

  private android.graphics.PointF mTempPointF;
    descriptor: Landroid/graphics/PointF;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 44
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic android.animation.PathKeyframes.EMPTY_KEYFRAMES:Ljava/util/ArrayList;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.graphics.Path);
    descriptor: (Landroid/graphics/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.animation.PathKeyframes this
        start local 1 // android.graphics.Path path
         0: .line 50
            aload 0 /* this */
            aload 1 /* path */
            ldc 0.5
            invokespecial android.animation.PathKeyframes.<init>:(Landroid/graphics/Path;F)V
         1: .line 51
            return
        end local 1 // android.graphics.Path path
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/animation/PathKeyframes;
            0    2     1  path  Landroid/graphics/Path;
    MethodParameters:
      Name  Flags
      path  

  public void <init>(android.graphics.Path, float);
    descriptor: (Landroid/graphics/Path;F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.animation.PathKeyframes this
        start local 1 // android.graphics.Path path
        start local 2 // float error
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            new android.graphics.PointF
            dup
            invokespecial android.graphics.PointF.<init>:()V
            putfield android.animation.PathKeyframes.mTempPointF:Landroid/graphics/PointF;
         2: .line 54
            aload 1 /* path */
            ifnull 3
            aload 1 /* path */
            invokevirtual android.graphics.Path.isEmpty:()Z
            ifeq 4
         3: .line 55
      StackMap locals: android.animation.PathKeyframes android.graphics.Path float
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The path must not be null or empty"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* path */
            fload 2 /* error */
            invokevirtual android.graphics.Path.approximate:(F)[F
            putfield android.animation.PathKeyframes.mKeyframeData:[F
         5: .line 58
            return
        end local 2 // float error
        end local 1 // android.graphics.Path path
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Landroid/animation/PathKeyframes;
            0    6     1   path  Landroid/graphics/Path;
            0    6     2  error  F
    MethodParameters:
       Name  Flags
      path   
      error  

  public java.util.ArrayList<android.animation.Keyframe> getKeyframes();
    descriptor: ()Ljava/util/ArrayList;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 62
            getstatic android.animation.PathKeyframes.EMPTY_KEYFRAMES:Ljava/util/ArrayList;
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;
    Signature: ()Ljava/util/ArrayList<Landroid/animation/Keyframe;>;

  public java.lang.Object getValue(float);
    descriptor: (F)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // android.animation.PathKeyframes this
        start local 1 // float fraction
         0: .line 67
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            arraylength
            iconst_3
            idiv
            istore 2 /* numPoints */
        start local 2 // int numPoints
         1: .line 68
            fload 1 /* fraction */
            fconst_0
            fcmpg
            ifge 3
         2: .line 69
            aload 0 /* this */
            fload 1 /* fraction */
            iconst_0
            iconst_1
            invokevirtual android.animation.PathKeyframes.interpolateInRange:(FII)Landroid/graphics/PointF;
            areturn
         3: .line 70
      StackMap locals: int
      StackMap stack:
            fload 1 /* fraction */
            fconst_1
            fcmpl
            ifle 5
         4: .line 71
            aload 0 /* this */
            fload 1 /* fraction */
            iload 2 /* numPoints */
            iconst_2
            isub
            iload 2 /* numPoints */
            iconst_1
            isub
            invokevirtual android.animation.PathKeyframes.interpolateInRange:(FII)Landroid/graphics/PointF;
            areturn
         5: .line 72
      StackMap locals:
      StackMap stack:
            fload 1 /* fraction */
            fconst_0
            fcmpl
            ifne 7
         6: .line 73
            aload 0 /* this */
            iconst_0
            invokevirtual android.animation.PathKeyframes.pointForIndex:(I)Landroid/graphics/PointF;
            areturn
         7: .line 74
      StackMap locals:
      StackMap stack:
            fload 1 /* fraction */
            fconst_1
            fcmpl
            ifne 9
         8: .line 75
            aload 0 /* this */
            iload 2 /* numPoints */
            iconst_1
            isub
            invokevirtual android.animation.PathKeyframes.pointForIndex:(I)Landroid/graphics/PointF;
            areturn
         9: .line 78
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* low */
        start local 3 // int low
        10: .line 79
            iload 2 /* numPoints */
            iconst_1
            isub
            istore 4 /* high */
        start local 4 // int high
        11: .line 81
            goto 21
        12: .line 82
      StackMap locals: int int
      StackMap stack:
            iload 3 /* low */
            iload 4 /* high */
            iadd
            iconst_2
            idiv
            istore 5 /* mid */
        start local 5 // int mid
        13: .line 83
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 5 /* mid */
            iconst_3
            imul
            iconst_0
            iadd
            faload
            fstore 6 /* midFraction */
        start local 6 // float midFraction
        14: .line 85
            fload 1 /* fraction */
            fload 6 /* midFraction */
            fcmpg
            ifge 17
        15: .line 86
            iload 5 /* mid */
            iconst_1
            isub
            istore 4 /* high */
        16: .line 87
            goto 21
      StackMap locals: int float
      StackMap stack:
        17: fload 1 /* fraction */
            fload 6 /* midFraction */
            fcmpl
            ifle 20
        18: .line 88
            iload 5 /* mid */
            iconst_1
            iadd
            istore 3 /* low */
        19: .line 89
            goto 21
        20: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* mid */
            invokevirtual android.animation.PathKeyframes.pointForIndex:(I)Landroid/graphics/PointF;
            areturn
        end local 6 // float midFraction
        end local 5 // int mid
        21: .line 81
      StackMap locals:
      StackMap stack:
            iload 3 /* low */
            iload 4 /* high */
            if_icmple 12
        22: .line 95
            aload 0 /* this */
            fload 1 /* fraction */
            iload 4 /* high */
            iload 3 /* low */
            invokevirtual android.animation.PathKeyframes.interpolateInRange:(FII)Landroid/graphics/PointF;
            areturn
        end local 4 // int high
        end local 3 // int low
        end local 2 // int numPoints
        end local 1 // float fraction
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Landroid/animation/PathKeyframes;
            0   23     1     fraction  F
            1   23     2    numPoints  I
           10   23     3          low  I
           11   23     4         high  I
           13   21     5          mid  I
           14   21     6  midFraction  F
    MethodParameters:
          Name  Flags
      fraction  

  private android.graphics.PointF interpolateInRange(float, int, int);
    descriptor: (FII)Landroid/graphics/PointF;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=15, args_size=4
        start local 0 // android.animation.PathKeyframes this
        start local 1 // float fraction
        start local 2 // int startIndex
        start local 3 // int endIndex
         0: .line 100
            iload 2 /* startIndex */
            iconst_3
            imul
            istore 4 /* startBase */
        start local 4 // int startBase
         1: .line 101
            iload 3 /* endIndex */
            iconst_3
            imul
            istore 5 /* endBase */
        start local 5 // int endBase
         2: .line 103
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 4 /* startBase */
            iconst_0
            iadd
            faload
            fstore 6 /* startFraction */
        start local 6 // float startFraction
         3: .line 104
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 5 /* endBase */
            iconst_0
            iadd
            faload
            fstore 7 /* endFraction */
        start local 7 // float endFraction
         4: .line 106
            fload 1 /* fraction */
            fload 6 /* startFraction */
            fsub
            fload 7 /* endFraction */
            fload 6 /* startFraction */
            fsub
            fdiv
            fstore 8 /* intervalFraction */
        start local 8 // float intervalFraction
         5: .line 108
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 4 /* startBase */
            iconst_1
            iadd
            faload
            fstore 9 /* startX */
        start local 9 // float startX
         6: .line 109
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 5 /* endBase */
            iconst_1
            iadd
            faload
            fstore 10 /* endX */
        start local 10 // float endX
         7: .line 110
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 4 /* startBase */
            iconst_2
            iadd
            faload
            fstore 11 /* startY */
        start local 11 // float startY
         8: .line 111
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 5 /* endBase */
            iconst_2
            iadd
            faload
            fstore 12 /* endY */
        start local 12 // float endY
         9: .line 113
            fload 8 /* intervalFraction */
            fload 9 /* startX */
            fload 10 /* endX */
            invokestatic android.animation.PathKeyframes.interpolate:(FFF)F
            fstore 13 /* x */
        start local 13 // float x
        10: .line 114
            fload 8 /* intervalFraction */
            fload 11 /* startY */
            fload 12 /* endY */
            invokestatic android.animation.PathKeyframes.interpolate:(FFF)F
            fstore 14 /* y */
        start local 14 // float y
        11: .line 116
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mTempPointF:Landroid/graphics/PointF;
            fload 13 /* x */
            fload 14 /* y */
            invokevirtual android.graphics.PointF.set:(FF)V
        12: .line 117
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mTempPointF:Landroid/graphics/PointF;
            areturn
        end local 14 // float y
        end local 13 // float x
        end local 12 // float endY
        end local 11 // float startY
        end local 10 // float endX
        end local 9 // float startX
        end local 8 // float intervalFraction
        end local 7 // float endFraction
        end local 6 // float startFraction
        end local 5 // int endBase
        end local 4 // int startBase
        end local 3 // int endIndex
        end local 2 // int startIndex
        end local 1 // float fraction
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Landroid/animation/PathKeyframes;
            0   13     1          fraction  F
            0   13     2        startIndex  I
            0   13     3          endIndex  I
            1   13     4         startBase  I
            2   13     5           endBase  I
            3   13     6     startFraction  F
            4   13     7       endFraction  F
            5   13     8  intervalFraction  F
            6   13     9            startX  F
            7   13    10              endX  F
            8   13    11            startY  F
            9   13    12              endY  F
           10   13    13                 x  F
           11   13    14                 y  F
    MethodParameters:
            Name  Flags
      fraction    
      startIndex  
      endIndex    

  public void setEvaluator(android.animation.TypeEvaluator);
    descriptor: (Landroid/animation/TypeEvaluator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.animation.PathKeyframes this
        start local 1 // android.animation.TypeEvaluator evaluator
         0: .line 122
            return
        end local 1 // android.animation.TypeEvaluator evaluator
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/animation/PathKeyframes;
            0    1     1  evaluator  Landroid/animation/TypeEvaluator;
    MethodParameters:
           Name  Flags
      evaluator  

  public java.lang.Class getType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 126
            ldc Landroid/graphics/PointF;
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;

  public android.animation.Keyframes clone();
    descriptor: ()Landroid/animation/Keyframes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 131
            aconst_null
            astore 1 /* clone */
        start local 1 // android.animation.Keyframes clone
         1: .line 133
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
            checkcast android.animation.Keyframes
            astore 1 /* clone */
         2: .line 134
            goto 4
      StackMap locals: android.animation.PathKeyframes android.animation.Keyframes
      StackMap stack: java.lang.CloneNotSupportedException
         3: pop
         4: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* clone */
            areturn
        end local 1 // android.animation.Keyframes clone
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/animation/PathKeyframes;
            1    5     1  clone  Landroid/animation/Keyframes;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.CloneNotSupportedException

  private android.graphics.PointF pointForIndex(int);
    descriptor: (I)Landroid/graphics/PointF;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // android.animation.PathKeyframes this
        start local 1 // int index
         0: .line 139
            iload 1 /* index */
            iconst_3
            imul
            istore 2 /* base */
        start local 2 // int base
         1: .line 140
            iload 2 /* base */
            iconst_1
            iadd
            istore 3 /* xOffset */
        start local 3 // int xOffset
         2: .line 141
            iload 2 /* base */
            iconst_2
            iadd
            istore 4 /* yOffset */
        start local 4 // int yOffset
         3: .line 142
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mTempPointF:Landroid/graphics/PointF;
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 3 /* xOffset */
            faload
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mKeyframeData:[F
            iload 4 /* yOffset */
            faload
            invokevirtual android.graphics.PointF.set:(FF)V
         4: .line 143
            aload 0 /* this */
            getfield android.animation.PathKeyframes.mTempPointF:Landroid/graphics/PointF;
            areturn
        end local 4 // int yOffset
        end local 3 // int xOffset
        end local 2 // int base
        end local 1 // int index
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/animation/PathKeyframes;
            0    5     1    index  I
            1    5     2     base  I
            2    5     3  xOffset  I
            3    5     4  yOffset  I
    MethodParameters:
       Name  Flags
      index  

  private static float interpolate(float, float, float);
    descriptor: (FFF)F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // float fraction
        start local 1 // float startValue
        start local 2 // float endValue
         0: .line 147
            fload 2 /* endValue */
            fload 1 /* startValue */
            fsub
            fstore 3 /* diff */
        start local 3 // float diff
         1: .line 148
            fload 1 /* startValue */
            fload 3 /* diff */
            fload 0 /* fraction */
            fmul
            fadd
            freturn
        end local 3 // float diff
        end local 2 // float endValue
        end local 1 // float startValue
        end local 0 // float fraction
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0    fraction  F
            0    2     1  startValue  F
            0    2     2    endValue  F
            1    2     3        diff  F
    MethodParameters:
            Name  Flags
      fraction    
      startValue  
      endValue    

  public android.animation.Keyframes$FloatKeyframes createXFloatKeyframes();
    descriptor: ()Landroid/animation/Keyframes$FloatKeyframes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 156
            new android.animation.PathKeyframes$1
            dup
            aload 0 /* this */
            invokespecial android.animation.PathKeyframes$1.<init>:(Landroid/animation/PathKeyframes;)V
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;

  public android.animation.Keyframes$FloatKeyframes createYFloatKeyframes();
    descriptor: ()Landroid/animation/Keyframes$FloatKeyframes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 170
            new android.animation.PathKeyframes$2
            dup
            aload 0 /* this */
            invokespecial android.animation.PathKeyframes$2.<init>:(Landroid/animation/PathKeyframes;)V
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;

  public android.animation.Keyframes$IntKeyframes createXIntKeyframes();
    descriptor: ()Landroid/animation/Keyframes$IntKeyframes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 184
            new android.animation.PathKeyframes$3
            dup
            aload 0 /* this */
            invokespecial android.animation.PathKeyframes$3.<init>:(Landroid/animation/PathKeyframes;)V
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;

  public android.animation.Keyframes$IntKeyframes createYIntKeyframes();
    descriptor: ()Landroid/animation/Keyframes$IntKeyframes;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.animation.PathKeyframes this
         0: .line 198
            new android.animation.PathKeyframes$4
            dup
            aload 0 /* this */
            invokespecial android.animation.PathKeyframes$4.<init>:(Landroid/animation/PathKeyframes;)V
            areturn
        end local 0 // android.animation.PathKeyframes this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/animation/PathKeyframes;

  public java.util.List getKeyframes();
    descriptor: ()Ljava/util/List;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.PathKeyframes.getKeyframes:()Ljava/util/ArrayList;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual android.animation.PathKeyframes.clone:()Landroid/animation/Keyframes;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.CloneNotSupportedException
}
SourceFile: "PathKeyframes.java"
NestMembers:
  android.animation.PathKeyframes$1  android.animation.PathKeyframes$2  android.animation.PathKeyframes$3  android.animation.PathKeyframes$4  android.animation.PathKeyframes$FloatKeyframesBase  android.animation.PathKeyframes$IntKeyframesBase  android.animation.PathKeyframes$SimpleKeyframes
InnerClasses:
  public abstract FloatKeyframes = android.animation.Keyframes$FloatKeyframes of android.animation.Keyframes
  public abstract IntKeyframes = android.animation.Keyframes$IntKeyframes of android.animation.Keyframes
  android.animation.PathKeyframes$1
  android.animation.PathKeyframes$2
  android.animation.PathKeyframes$3
  android.animation.PathKeyframes$4
  abstract FloatKeyframesBase = android.animation.PathKeyframes$FloatKeyframesBase of android.animation.PathKeyframes
  abstract IntKeyframesBase = android.animation.PathKeyframes$IntKeyframesBase of android.animation.PathKeyframes
  private abstract SimpleKeyframes = android.animation.PathKeyframes$SimpleKeyframes of android.animation.PathKeyframes