class android.gesture.Instance
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.gesture.Instance
  super_class: java.lang.Object
{
  private static final int SEQUENCE_SAMPLE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

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

  private static final float[] ORIENTATIONS;
    descriptor: [F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  final float[] vector;
    descriptor: [F
    flags: (0x0010) ACC_FINAL

  final java.lang.String label;
    descriptor: Ljava/lang/String;
    flags: (0x0010) ACC_FINAL

  final long id;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 29
            bipush 10
            newarray 6
            dup
            iconst_0
         1: .line 30
            fconst_0
            fastore
            dup
            iconst_1
            ldc 0.7853982
            fastore
            dup
            iconst_2
            ldc 1.5707964
            fastore
            dup
            iconst_3
            ldc 2.3561945
            fastore
            dup
            iconst_4
         2: .line 31
            ldc 3.1415927
            fastore
            dup
            iconst_5
            fconst_0
            fastore
            dup
            bipush 6
            ldc -0.7853982
            fastore
            dup
            bipush 7
            ldc -1.5707964
            fastore
            dup
            bipush 8
         3: .line 32
            ldc -2.3561945
            fastore
            dup
            bipush 9
            ldc -3.1415927
            fastore
         4: .line 29
            putstatic android.gesture.Instance.ORIENTATIONS:[F
         5: .line 33
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(long, float[], java.lang.String);
    descriptor: (J[FLjava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // android.gesture.Instance this
        start local 1 // long id
        start local 3 // float[] sample
        start local 4 // java.lang.String sampleName
         0: .line 44
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            aload 0 /* this */
            lload 1 /* id */
            putfield android.gesture.Instance.id:J
         2: .line 46
            aload 0 /* this */
            aload 3 /* sample */
            putfield android.gesture.Instance.vector:[F
         3: .line 47
            aload 0 /* this */
            aload 4 /* sampleName */
            putfield android.gesture.Instance.label:Ljava/lang/String;
         4: .line 48
            return
        end local 4 // java.lang.String sampleName
        end local 3 // float[] sample
        end local 1 // long id
        end local 0 // android.gesture.Instance this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/gesture/Instance;
            0    5     1          id  J
            0    5     3      sample  [F
            0    5     4  sampleName  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      id          
      sample      
      sampleName  

  private void normalize();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // android.gesture.Instance this
         0: .line 51
            aload 0 /* this */
            getfield android.gesture.Instance.vector:[F
            astore 1 /* sample */
        start local 1 // float[] sample
         1: .line 52
            fconst_0
            fstore 2 /* sum */
        start local 2 // float sum
         2: .line 54
            aload 1 /* sample */
            arraylength
            istore 3 /* size */
        start local 3 // int size
         3: .line 55
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         4: goto 7
         5: .line 56
      StackMap locals: android.gesture.Instance float[] float int int
      StackMap stack:
            fload 2 /* sum */
            aload 1 /* sample */
            iload 4 /* i */
            faload
            aload 1 /* sample */
            iload 4 /* i */
            faload
            fmul
            fadd
            fstore 2 /* sum */
         6: .line 55
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 4 /* i */
            iload 3 /* size */
            if_icmplt 5
        end local 4 // int i
         8: .line 59
            fload 2 /* sum */
            f2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2f
            fstore 4 /* magnitude */
        start local 4 // float magnitude
         9: .line 60
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        10: goto 13
        11: .line 61
      StackMap locals: android.gesture.Instance float[] float int float int
      StackMap stack:
            aload 1 /* sample */
            iload 5 /* i */
            dup2
            faload
            fload 4 /* magnitude */
            fdiv
            fastore
        12: .line 60
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            iload 3 /* size */
            if_icmplt 11
        end local 5 // int i
        14: .line 63
            return
        end local 4 // float magnitude
        end local 3 // int size
        end local 2 // float sum
        end local 1 // float[] sample
        end local 0 // android.gesture.Instance this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Landroid/gesture/Instance;
            1   15     1     sample  [F
            2   15     2        sum  F
            3   15     3       size  I
            4    8     4          i  I
            9   15     4  magnitude  F
           10   14     5          i  I

  static android.gesture.Instance createInstance(int, int, android.gesture.Gesture, java.lang.String);
    descriptor: (IILandroid/gesture/Gesture;Ljava/lang/String;)Landroid/gesture/Instance;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // int sequenceType
        start local 1 // int orientationType
        start local 2 // android.gesture.Gesture gesture
        start local 3 // java.lang.String label
         0: .line 75
            iload 0 /* sequenceType */
            iconst_2
            if_icmpne 5
         1: .line 76
            iload 1 /* orientationType */
            aload 2 /* gesture */
            invokestatic android.gesture.Instance.temporalSampler:(ILandroid/gesture/Gesture;)[F
            astore 4 /* pts */
        start local 4 // float[] pts
         2: .line 77
            new android.gesture.Instance
            dup
            aload 2 /* gesture */
            invokevirtual android.gesture.Gesture.getID:()J
            aload 4 /* pts */
            aload 3 /* label */
            invokespecial android.gesture.Instance.<init>:(J[FLjava/lang/String;)V
            astore 5 /* instance */
        start local 5 // android.gesture.Instance instance
         3: .line 78
            aload 5 /* instance */
            invokevirtual android.gesture.Instance.normalize:()V
         4: .line 79
            goto 7
        end local 5 // android.gesture.Instance instance
        end local 4 // float[] pts
         5: .line 80
      StackMap locals:
      StackMap stack:
            aload 2 /* gesture */
            invokestatic android.gesture.Instance.spatialSampler:(Landroid/gesture/Gesture;)[F
            astore 4 /* pts */
        start local 4 // float[] pts
         6: .line 81
            new android.gesture.Instance
            dup
            aload 2 /* gesture */
            invokevirtual android.gesture.Gesture.getID:()J
            aload 4 /* pts */
            aload 3 /* label */
            invokespecial android.gesture.Instance.<init>:(J[FLjava/lang/String;)V
            astore 5 /* instance */
        start local 5 // android.gesture.Instance instance
         7: .line 83
      StackMap locals: float[] android.gesture.Instance
      StackMap stack:
            aload 5 /* instance */
            areturn
        end local 5 // android.gesture.Instance instance
        end local 4 // float[] pts
        end local 3 // java.lang.String label
        end local 2 // android.gesture.Gesture gesture
        end local 1 // int orientationType
        end local 0 // int sequenceType
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0     sequenceType  I
            0    8     1  orientationType  I
            0    8     2          gesture  Landroid/gesture/Gesture;
            0    8     3            label  Ljava/lang/String;
            2    5     4              pts  [F
            6    8     4              pts  [F
            3    5     5         instance  Landroid/gesture/Instance;
            7    8     5         instance  Landroid/gesture/Instance;
    MethodParameters:
                 Name  Flags
      sequenceType     
      orientationType  
      gesture          
      label            

  private static float[] spatialSampler(android.gesture.Gesture);
    descriptor: (Landroid/gesture/Gesture;)[F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.gesture.Gesture gesture
         0: .line 87
            aload 0 /* gesture */
            bipush 16
            iconst_0
            invokestatic android.gesture.GestureUtils.spatialSampling:(Landroid/gesture/Gesture;IZ)[F
            areturn
        end local 0 // android.gesture.Gesture gesture
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  gesture  Landroid/gesture/Gesture;
    MethodParameters:
         Name  Flags
      gesture  

  private static float[] temporalSampler(int, android.gesture.Gesture);
    descriptor: (ILandroid/gesture/Gesture;)[F
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // int orientationType
        start local 1 // android.gesture.Gesture gesture
         0: .line 91
            aload 1 /* gesture */
            invokevirtual android.gesture.Gesture.getStrokes:()Ljava/util/ArrayList;
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.gesture.GestureStroke
         1: .line 92
            bipush 16
         2: .line 91
            invokestatic android.gesture.GestureUtils.temporalSampling:(Landroid/gesture/GestureStroke;I)[F
            astore 2 /* pts */
        start local 2 // float[] pts
         3: .line 93
            aload 2 /* pts */
            invokestatic android.gesture.GestureUtils.computeCentroid:([F)[F
            astore 3 /* center */
        start local 3 // float[] center
         4: .line 94
            aload 2 /* pts */
            iconst_1
            faload
            aload 3 /* center */
            iconst_1
            faload
            fsub
            f2d
            aload 2 /* pts */
            iconst_0
            faload
            aload 3 /* center */
            iconst_0
            faload
            fsub
            f2d
            invokestatic java.lang.Math.atan2:(DD)D
            d2f
            fstore 4 /* orientation */
        start local 4 // float orientation
         5: .line 96
            fload 4 /* orientation */
            fneg
            fstore 5 /* adjustment */
        start local 5 // float adjustment
         6: .line 97
            iload 0 /* orientationType */
            iconst_1
            if_icmpeq 15
         7: .line 98
            getstatic android.gesture.Instance.ORIENTATIONS:[F
            arraylength
            istore 6 /* count */
        start local 6 // int count
         8: .line 99
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         9: goto 14
        10: .line 100
      StackMap locals: int android.gesture.Gesture float[] float[] float float int int
      StackMap stack:
            getstatic android.gesture.Instance.ORIENTATIONS:[F
            iload 7 /* i */
            faload
            fload 4 /* orientation */
            fsub
            fstore 8 /* delta */
        start local 8 // float delta
        11: .line 101
            fload 8 /* delta */
            invokestatic java.lang.Math.abs:(F)F
            fload 5 /* adjustment */
            invokestatic java.lang.Math.abs:(F)F
            fcmpg
            ifge 13
        12: .line 102
            fload 8 /* delta */
            fstore 5 /* adjustment */
        end local 8 // float delta
        13: .line 99
      StackMap locals:
      StackMap stack:
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            iload 6 /* count */
            if_icmplt 10
        end local 7 // int i
        end local 6 // int count
        15: .line 107
      StackMap locals:
      StackMap stack:
            aload 2 /* pts */
            aload 3 /* center */
            iconst_0
            faload
            fneg
            aload 3 /* center */
            iconst_1
            faload
            fneg
            invokestatic android.gesture.GestureUtils.translate:([FFF)[F
            pop
        16: .line 108
            aload 2 /* pts */
            fload 5 /* adjustment */
            invokestatic android.gesture.GestureUtils.rotate:([FF)[F
            pop
        17: .line 110
            aload 2 /* pts */
            areturn
        end local 5 // float adjustment
        end local 4 // float orientation
        end local 3 // float[] center
        end local 2 // float[] pts
        end local 1 // android.gesture.Gesture gesture
        end local 0 // int orientationType
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   18     0  orientationType  I
            0   18     1          gesture  Landroid/gesture/Gesture;
            3   18     2              pts  [F
            4   18     3           center  [F
            5   18     4      orientation  F
            6   18     5       adjustment  F
            8   15     6            count  I
            9   15     7                i  I
           11   13     8            delta  F
    MethodParameters:
                 Name  Flags
      orientationType  
      gesture          
}
SourceFile: "Instance.java"