public class android.text.method.MultiTapKeyListener extends android.text.method.BaseKeyListener implements android.text.SpanWatcher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.text.method.MultiTapKeyListener
  super_class: android.text.method.BaseKeyListener
{
  private static android.text.method.MultiTapKeyListener[] sInstance;
    descriptor: [Landroid/text/method/MultiTapKeyListener;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final android.util.SparseArray<java.lang.String> sRecs;
    descriptor: Landroid/util/SparseArray;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Landroid/util/SparseArray<Ljava/lang/String;>;

  private android.text.method.TextKeyListener$Capitalize mCapitalize;
    descriptor: Landroid/text/method/TextKeyListener$Capitalize;
    flags: (0x0002) ACC_PRIVATE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 42
            invokestatic android.text.method.TextKeyListener$Capitalize.values:()[Landroid/text/method/TextKeyListener$Capitalize;
            arraylength
            iconst_2
            imul
            anewarray android.text.method.MultiTapKeyListener
         1: .line 41
            putstatic android.text.method.MultiTapKeyListener.sInstance:[Landroid/text/method/MultiTapKeyListener;
         2: .line 44
            new android.util.SparseArray
            dup
            invokespecial android.util.SparseArray.<init>:()V
            putstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
         3: .line 50
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 8
            ldc ".,1!@#$%^&*:/?'=()"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         4: .line 51
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 9
            ldc "abc2ABC"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         5: .line 52
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 10
            ldc "def3DEF"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         6: .line 53
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 11
            ldc "ghi4GHI"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         7: .line 54
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 12
            ldc "jkl5JKL"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         8: .line 55
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 13
            ldc "mno6MNO"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
         9: .line 56
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 14
            ldc "pqrs7PQRS"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        10: .line 57
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 15
            ldc "tuv8TUV"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        11: .line 58
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 16
            ldc "wxyz9WXYZ"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        12: .line 59
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 7
            ldc "0+"
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        13: .line 60
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            bipush 18
            ldc " "
            invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
        14: .line 61
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.text.method.TextKeyListener$Capitalize, boolean);
    descriptor: (Landroid/text/method/TextKeyListener$Capitalize;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.text.method.MultiTapKeyListener this
        start local 1 // android.text.method.TextKeyListener$Capitalize cap
        start local 2 // boolean autotext
         0: .line 63
            aload 0 /* this */
            invokespecial android.text.method.BaseKeyListener.<init>:()V
         1: .line 65
            aload 0 /* this */
            aload 1 /* cap */
            putfield android.text.method.MultiTapKeyListener.mCapitalize:Landroid/text/method/TextKeyListener$Capitalize;
         2: .line 66
            aload 0 /* this */
            iload 2 /* autotext */
            putfield android.text.method.MultiTapKeyListener.mAutoText:Z
         3: .line 67
            return
        end local 2 // boolean autotext
        end local 1 // android.text.method.TextKeyListener$Capitalize cap
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/text/method/MultiTapKeyListener;
            0    4     1       cap  Landroid/text/method/TextKeyListener$Capitalize;
            0    4     2  autotext  Z
    MethodParameters:
          Name  Flags
      cap       
      autotext  

  public static android.text.method.MultiTapKeyListener getInstance(boolean, android.text.method.TextKeyListener$Capitalize);
    descriptor: (ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/MultiTapKeyListener;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // boolean autotext
        start local 1 // android.text.method.TextKeyListener$Capitalize cap
         0: .line 75
            aload 1 /* cap */
            invokevirtual android.text.method.TextKeyListener$Capitalize.ordinal:()I
            iconst_2
            imul
            iload 0 /* autotext */
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: int
         1: iconst_0
      StackMap locals: int android.text.method.TextKeyListener$Capitalize
      StackMap stack: int int
         2: iadd
            istore 2 /* off */
        start local 2 // int off
         3: .line 77
            getstatic android.text.method.MultiTapKeyListener.sInstance:[Landroid/text/method/MultiTapKeyListener;
            iload 2 /* off */
            aaload
            ifnonnull 5
         4: .line 78
            getstatic android.text.method.MultiTapKeyListener.sInstance:[Landroid/text/method/MultiTapKeyListener;
            iload 2 /* off */
            new android.text.method.MultiTapKeyListener
            dup
            aload 1 /* cap */
            iload 0 /* autotext */
            invokespecial android.text.method.MultiTapKeyListener.<init>:(Landroid/text/method/TextKeyListener$Capitalize;Z)V
            aastore
         5: .line 81
      StackMap locals: int
      StackMap stack:
            getstatic android.text.method.MultiTapKeyListener.sInstance:[Landroid/text/method/MultiTapKeyListener;
            iload 2 /* off */
            aaload
            areturn
        end local 2 // int off
        end local 1 // android.text.method.TextKeyListener$Capitalize cap
        end local 0 // boolean autotext
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  autotext  Z
            0    6     1       cap  Landroid/text/method/TextKeyListener$Capitalize;
            3    6     2       off  I
    MethodParameters:
          Name  Flags
      autotext  
      cap       

  public int getInputType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.text.method.MultiTapKeyListener this
         0: .line 85
            aload 0 /* this */
            getfield android.text.method.MultiTapKeyListener.mCapitalize:Landroid/text/method/TextKeyListener$Capitalize;
            aload 0 /* this */
            getfield android.text.method.MultiTapKeyListener.mAutoText:Z
            invokestatic android.text.method.MultiTapKeyListener.makeTextContentType:(Landroid/text/method/TextKeyListener$Capitalize;Z)I
            ireturn
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/method/MultiTapKeyListener;

  public boolean onKeyDown(android.view.View, android.text.Editable, int, android.view.KeyEvent);
    descriptor: (Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=19, args_size=5
        start local 0 // android.text.method.MultiTapKeyListener this
        start local 1 // android.view.View view
        start local 2 // android.text.Editable content
        start local 3 // int keyCode
        start local 4 // android.view.KeyEvent event
         0: .line 91
            iconst_0
            istore 7 /* pref */
        start local 7 // int pref
         1: .line 93
            aload 1 /* view */
            ifnull 3
         2: .line 94
            invokestatic android.text.method.TextKeyListener.getInstance:()Landroid/text/method/TextKeyListener;
            aload 1 /* view */
            invokevirtual android.view.View.getContext:()Landroid/content/Context;
            invokevirtual android.text.method.TextKeyListener.getPrefs:(Landroid/content/Context;)I
            istore 7 /* pref */
         3: .line 98
      StackMap locals: android.text.method.MultiTapKeyListener android.view.View android.text.Editable int android.view.KeyEvent top top int
      StackMap stack:
            aload 2 /* content */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 8 /* a */
        start local 8 // int a
         4: .line 99
            aload 2 /* content */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 9 /* b */
        start local 9 // int b
         5: .line 101
            iload 8 /* a */
            iload 9 /* b */
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* selStart */
        start local 5 // int selStart
         6: .line 102
            iload 8 /* a */
            iload 9 /* b */
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* selEnd */
        end local 9 // int b
        end local 8 // int a
        start local 6 // int selEnd
         7: .line 105
            aload 2 /* content */
            getstatic android.text.method.TextKeyListener.ACTIVE:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 8 /* activeStart */
        start local 8 // int activeStart
         8: .line 106
            aload 2 /* content */
            getstatic android.text.method.TextKeyListener.ACTIVE:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 9 /* activeEnd */
        start local 9 // int activeEnd
         9: .line 113
            aload 2 /* content */
            getstatic android.text.method.TextKeyListener.ACTIVE:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanFlags:(Ljava/lang/Object;)I
        10: .line 114
            ldc -16777216
        11: .line 113
            iand
        12: .line 114
            bipush 24
        13: .line 113
            iushr
            istore 10 /* rec */
        start local 10 // int rec
        14: .line 116
            iload 8 /* activeStart */
            iload 5 /* selStart */
            if_icmpne 48
            iload 9 /* activeEnd */
            iload 6 /* selEnd */
            if_icmpne 48
        15: .line 117
            iload 6 /* selEnd */
            iload 5 /* selStart */
            isub
            iconst_1
            if_icmpne 48
        16: .line 118
            iload 10 /* rec */
            iflt 48
            iload 10 /* rec */
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            invokevirtual android.util.SparseArray.size:()I
            if_icmpge 48
        17: .line 119
            iload 3 /* keyCode */
            bipush 17
            if_icmpne 33
        18: .line 120
            aload 2 /* content */
            iload 5 /* selStart */
            invokeinterface android.text.Editable.charAt:(I)C
            istore 11 /* current */
        start local 11 // char current
        19: .line 122
            iload 11 /* current */
            invokestatic java.lang.Character.isLowerCase:(C)Z
            ifeq 26
        20: .line 123
            aload 2 /* content */
            iload 5 /* selStart */
            iload 6 /* selEnd */
        21: .line 124
            iload 11 /* current */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
        22: .line 123
            invokeinterface android.text.Editable.replace:(IILjava/lang/CharSequence;)Landroid/text/Editable;
            pop
        23: .line 125
            aload 2 /* content */
            invokestatic android.text.method.MultiTapKeyListener.removeTimeouts:(Landroid/text/Spannable;)V
        24: .line 126
            new android.text.method.MultiTapKeyListener$Timeout
            aload 0 /* this */
            aload 2 /* content */
            invokespecial android.text.method.MultiTapKeyListener$Timeout.<init>:(Landroid/text/method/MultiTapKeyListener;Landroid/text/Editable;)V
        25: .line 128
            iconst_1
            ireturn
        26: .line 130
      StackMap locals: android.text.method.MultiTapKeyListener android.view.View android.text.Editable int android.view.KeyEvent int int int int int int int
      StackMap stack:
            iload 11 /* current */
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 33
        27: .line 131
            aload 2 /* content */
            iload 5 /* selStart */
            iload 6 /* selEnd */
        28: .line 132
            iload 11 /* current */
            invokestatic java.lang.String.valueOf:(C)Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
        29: .line 131
            invokeinterface android.text.Editable.replace:(IILjava/lang/CharSequence;)Landroid/text/Editable;
            pop
        30: .line 133
            aload 2 /* content */
            invokestatic android.text.method.MultiTapKeyListener.removeTimeouts:(Landroid/text/Spannable;)V
        31: .line 134
            new android.text.method.MultiTapKeyListener$Timeout
            aload 0 /* this */
            aload 2 /* content */
            invokespecial android.text.method.MultiTapKeyListener$Timeout.<init>:(Landroid/text/method/MultiTapKeyListener;Landroid/text/Editable;)V
        32: .line 136
            iconst_1
            ireturn
        end local 11 // char current
        33: .line 140
      StackMap locals:
      StackMap stack:
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            iload 3 /* keyCode */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            iload 10 /* rec */
            if_icmpne 43
        34: .line 141
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            iload 10 /* rec */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* val */
        start local 11 // java.lang.String val
        35: .line 142
            aload 2 /* content */
            iload 5 /* selStart */
            invokeinterface android.text.Editable.charAt:(I)C
            istore 12 /* ch */
        start local 12 // char ch
        36: .line 143
            aload 11 /* val */
            iload 12 /* ch */
            invokevirtual java.lang.String.indexOf:(I)I
            istore 13 /* ix */
        start local 13 // int ix
        37: .line 145
            iload 13 /* ix */
            iflt 43
        38: .line 146
            iload 13 /* ix */
            iconst_1
            iadd
            aload 11 /* val */
            invokevirtual java.lang.String.length:()I
            irem
            istore 13 /* ix */
        39: .line 148
            aload 2 /* content */
            iload 5 /* selStart */
            iload 6 /* selEnd */
            aload 11 /* val */
            iload 13 /* ix */
            iload 13 /* ix */
            iconst_1
            iadd
            invokeinterface android.text.Editable.replace:(IILjava/lang/CharSequence;II)Landroid/text/Editable;
            pop
        40: .line 149
            aload 2 /* content */
            invokestatic android.text.method.MultiTapKeyListener.removeTimeouts:(Landroid/text/Spannable;)V
        41: .line 150
            new android.text.method.MultiTapKeyListener$Timeout
            aload 0 /* this */
            aload 2 /* content */
            invokespecial android.text.method.MultiTapKeyListener$Timeout.<init>:(Landroid/text/method/MultiTapKeyListener;Landroid/text/Editable;)V
        42: .line 152
            iconst_1
            ireturn
        end local 13 // int ix
        end local 12 // char ch
        end local 11 // java.lang.String val
        43: .line 161
      StackMap locals:
      StackMap stack:
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            iload 3 /* keyCode */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            istore 10 /* rec */
        44: .line 163
            iload 10 /* rec */
            iflt 49
        45: .line 164
            aload 2 /* content */
            iload 6 /* selEnd */
            iload 6 /* selEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        46: .line 165
            iload 6 /* selEnd */
            istore 5 /* selStart */
        47: .line 167
            goto 49
        48: .line 168
      StackMap locals:
      StackMap stack:
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            iload 3 /* keyCode */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            istore 10 /* rec */
        49: .line 171
      StackMap locals:
      StackMap stack:
            iload 10 /* rec */
            iflt 96
        50: .line 176
            getstatic android.text.method.MultiTapKeyListener.sRecs:Landroid/util/SparseArray;
            iload 10 /* rec */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* val */
        start local 11 // java.lang.String val
        51: .line 178
            iconst_0
            istore 12 /* off */
        start local 12 // int off
        52: .line 179
            iload 7 /* pref */
            iconst_1
            iand
            ifeq 61
        53: .line 180
            aload 0 /* this */
            getfield android.text.method.MultiTapKeyListener.mCapitalize:Landroid/text/method/TextKeyListener$Capitalize;
            aload 2 /* content */
            iload 5 /* selStart */
            invokestatic android.text.method.TextKeyListener.shouldCap:(Landroid/text/method/TextKeyListener$Capitalize;Ljava/lang/CharSequence;I)Z
            ifeq 61
        54: .line 181
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        55: goto 60
        56: .line 182
      StackMap locals: java.lang.String int int
      StackMap stack:
            aload 11 /* val */
            iload 13 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 59
        57: .line 183
            iload 13 /* i */
            istore 12 /* off */
        58: .line 184
            goto 61
        59: .line 181
      StackMap locals:
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 13 /* i */
            aload 11 /* val */
            invokevirtual java.lang.String.length:()I
            if_icmplt 56
        end local 13 // int i
        61: .line 189
      StackMap locals:
      StackMap stack:
            iload 5 /* selStart */
            iload 6 /* selEnd */
            if_icmpeq 63
        62: .line 190
            aload 2 /* content */
            iload 6 /* selEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        63: .line 193
      StackMap locals:
      StackMap stack:
            aload 2 /* content */
            getstatic android.text.method.MultiTapKeyListener.OLD_SEL_START:Ljava/lang/Object;
            iload 5 /* selStart */
            iload 5 /* selStart */
        64: .line 194
            bipush 17
        65: .line 193
            invokeinterface android.text.Editable.setSpan:(Ljava/lang/Object;III)V
        66: .line 196
            aload 2 /* content */
            iload 5 /* selStart */
            iload 6 /* selEnd */
            aload 11 /* val */
            iload 12 /* off */
            iload 12 /* off */
            iconst_1
            iadd
            invokeinterface android.text.Editable.replace:(IILjava/lang/CharSequence;II)Landroid/text/Editable;
            pop
        67: .line 198
            aload 2 /* content */
            getstatic android.text.method.MultiTapKeyListener.OLD_SEL_START:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 13 /* oldStart */
        start local 13 // int oldStart
        68: .line 199
            aload 2 /* content */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 6 /* selEnd */
        69: .line 201
            iload 6 /* selEnd */
            iload 13 /* oldStart */
            if_icmpeq 81
        70: .line 202
            aload 2 /* content */
            iload 13 /* oldStart */
            iload 6 /* selEnd */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
        71: .line 204
            aload 2 /* content */
            getstatic android.text.method.TextKeyListener.LAST_TYPED:Ljava/lang/Object;
        72: .line 205
            iload 13 /* oldStart */
            iload 6 /* selEnd */
        73: .line 206
            bipush 33
        74: .line 204
            invokeinterface android.text.Editable.setSpan:(Ljava/lang/Object;III)V
        75: .line 208
            aload 2 /* content */
            getstatic android.text.method.TextKeyListener.ACTIVE:Ljava/lang/Object;
        76: .line 209
            iload 13 /* oldStart */
            iload 6 /* selEnd */
        77: .line 210
            bipush 33
        78: .line 211
            iload 10 /* rec */
            bipush 24
            ishl
        79: .line 210
            ior
        80: .line 208
            invokeinterface android.text.Editable.setSpan:(Ljava/lang/Object;III)V
        81: .line 215
      StackMap locals: int
      StackMap stack:
            aload 2 /* content */
            invokestatic android.text.method.MultiTapKeyListener.removeTimeouts:(Landroid/text/Spannable;)V
        82: .line 216
            new android.text.method.MultiTapKeyListener$Timeout
            aload 0 /* this */
            aload 2 /* content */
            invokespecial android.text.method.MultiTapKeyListener$Timeout.<init>:(Landroid/text/method/MultiTapKeyListener;Landroid/text/Editable;)V
        83: .line 221
            aload 2 /* content */
            aload 0 /* this */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            ifge 95
        84: .line 222
            aload 2 /* content */
            iconst_0
            aload 2 /* content */
            invokeinterface android.text.Editable.length:()I
        85: .line 223
            ldc Landroid/text/method/KeyListener;
        86: .line 222
            invokeinterface android.text.Editable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.method.KeyListener[]
            astore 14 /* methods */
        start local 14 // android.text.method.KeyListener[] methods
        87: .line 224
            aload 14 /* methods */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 91
      StackMap locals: android.text.method.MultiTapKeyListener android.view.View android.text.Editable int android.view.KeyEvent int int int int int int java.lang.String int int android.text.method.KeyListener[] top int int java.lang.Object[]
      StackMap stack:
        88: aload 18
            iload 16
            aaload
            astore 15 /* method */
        start local 15 // java.lang.Object method
        89: .line 225
            aload 2 /* content */
            aload 15 /* method */
            invokeinterface android.text.Editable.removeSpan:(Ljava/lang/Object;)V
        end local 15 // java.lang.Object method
        90: .line 224
            iinc 16 1
      StackMap locals:
      StackMap stack:
        91: iload 16
            iload 17
            if_icmplt 88
        92: .line 227
            aload 2 /* content */
            aload 0 /* this */
            iconst_0
            aload 2 /* content */
            invokeinterface android.text.Editable.length:()I
        93: .line 228
            bipush 18
        94: .line 227
            invokeinterface android.text.Editable.setSpan:(Ljava/lang/Object;III)V
        end local 14 // android.text.method.KeyListener[] methods
        95: .line 231
      StackMap locals: android.text.method.MultiTapKeyListener android.view.View android.text.Editable int android.view.KeyEvent int int int int int int java.lang.String int int
      StackMap stack:
            iconst_1
            ireturn
        end local 13 // int oldStart
        end local 12 // int off
        end local 11 // java.lang.String val
        96: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* view */
            aload 2 /* content */
            iload 3 /* keyCode */
            aload 4 /* event */
            invokespecial android.text.method.BaseKeyListener.onKeyDown:(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
            ireturn
        end local 10 // int rec
        end local 9 // int activeEnd
        end local 8 // int activeStart
        end local 7 // int pref
        end local 6 // int selEnd
        end local 5 // int selStart
        end local 4 // android.view.KeyEvent event
        end local 3 // int keyCode
        end local 2 // android.text.Editable content
        end local 1 // android.view.View view
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   97     0         this  Landroid/text/method/MultiTapKeyListener;
            0   97     1         view  Landroid/view/View;
            0   97     2      content  Landroid/text/Editable;
            0   97     3      keyCode  I
            0   97     4        event  Landroid/view/KeyEvent;
            6   97     5     selStart  I
            7   97     6       selEnd  I
            1   97     7         pref  I
            4    7     8            a  I
            5    7     9            b  I
            8   97     8  activeStart  I
            9   97     9    activeEnd  I
           14   97    10          rec  I
           19   33    11      current  C
           35   43    11          val  Ljava/lang/String;
           36   43    12           ch  C
           37   43    13           ix  I
           51   96    11          val  Ljava/lang/String;
           52   96    12          off  I
           55   61    13            i  I
           68   96    13     oldStart  I
           87   95    14      methods  [Landroid/text/method/KeyListener;
           89   90    15       method  Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      view     
      content  
      keyCode  
      event    

  public void onSpanChanged(android.text.Spannable, java.lang.Object, int, int, int, int);
    descriptor: (Landroid/text/Spannable;Ljava/lang/Object;IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // android.text.method.MultiTapKeyListener this
        start local 1 // android.text.Spannable buf
        start local 2 // java.lang.Object what
        start local 3 // int s
        start local 4 // int e
        start local 5 // int start
        start local 6 // int stop
         0: .line 239
            aload 2 /* what */
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            if_acmpne 3
         1: .line 240
            aload 1 /* buf */
            getstatic android.text.method.TextKeyListener.ACTIVE:Ljava/lang/Object;
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
         2: .line 241
            aload 1 /* buf */
            invokestatic android.text.method.MultiTapKeyListener.removeTimeouts:(Landroid/text/Spannable;)V
         3: .line 243
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int stop
        end local 5 // int start
        end local 4 // int e
        end local 3 // int s
        end local 2 // java.lang.Object what
        end local 1 // android.text.Spannable buf
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/text/method/MultiTapKeyListener;
            0    4     1    buf  Landroid/text/Spannable;
            0    4     2   what  Ljava/lang/Object;
            0    4     3      s  I
            0    4     4      e  I
            0    4     5  start  I
            0    4     6   stop  I
    MethodParameters:
       Name  Flags
      buf    
      what   
      s      
      e      
      start  
      stop   

  private static void removeTimeouts(android.text.Spannable);
    descriptor: (Landroid/text/Spannable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.text.Spannable buf
         0: .line 246
            aload 0 /* buf */
            iconst_0
            aload 0 /* buf */
            invokeinterface android.text.Spannable.length:()I
            ldc Landroid/text/method/MultiTapKeyListener$Timeout;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.method.MultiTapKeyListener$Timeout[]
            astore 1 /* timeout */
        start local 1 // android.text.method.MultiTapKeyListener$Timeout[] timeout
         1: .line 248
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 8
         3: .line 249
      StackMap locals: android.text.method.MultiTapKeyListener$Timeout[] int
      StackMap stack:
            aload 1 /* timeout */
            iload 2 /* i */
            aaload
            astore 3 /* t */
        start local 3 // android.text.method.MultiTapKeyListener$Timeout t
         4: .line 251
            aload 3 /* t */
            aload 3 /* t */
            invokevirtual android.text.method.MultiTapKeyListener$Timeout.removeCallbacks:(Ljava/lang/Runnable;)V
         5: .line 252
            aload 3 /* t */
            aconst_null
            putfield android.text.method.MultiTapKeyListener$Timeout.mBuffer:Landroid/text/Editable;
         6: .line 253
            aload 0 /* buf */
            aload 3 /* t */
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
        end local 3 // android.text.method.MultiTapKeyListener$Timeout t
         7: .line 248
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 2 /* i */
            aload 1 /* timeout */
            arraylength
            if_icmplt 3
        end local 2 // int i
         9: .line 255
            return
        end local 1 // android.text.method.MultiTapKeyListener$Timeout[] timeout
        end local 0 // android.text.Spannable buf
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0      buf  Landroid/text/Spannable;
            1   10     1  timeout  [Landroid/text/method/MultiTapKeyListener$Timeout;
            2    9     2        i  I
            4    7     3        t  Landroid/text/method/MultiTapKeyListener$Timeout;
    MethodParameters:
      Name  Flags
      buf   

  public void onSpanAdded(android.text.Spannable, java.lang.Object, int, int);
    descriptor: (Landroid/text/Spannable;Ljava/lang/Object;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // android.text.method.MultiTapKeyListener this
        start local 1 // android.text.Spannable s
        start local 2 // java.lang.Object what
        start local 3 // int start
        start local 4 // int end
         0: .line 290
            return
        end local 4 // int end
        end local 3 // int start
        end local 2 // java.lang.Object what
        end local 1 // android.text.Spannable s
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/method/MultiTapKeyListener;
            0    1     1      s  Landroid/text/Spannable;
            0    1     2   what  Ljava/lang/Object;
            0    1     3  start  I
            0    1     4    end  I
    MethodParameters:
       Name  Flags
      s      
      what   
      start  
      end    

  public void onSpanRemoved(android.text.Spannable, java.lang.Object, int, int);
    descriptor: (Landroid/text/Spannable;Ljava/lang/Object;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // android.text.method.MultiTapKeyListener this
        start local 1 // android.text.Spannable s
        start local 2 // java.lang.Object what
        start local 3 // int start
        start local 4 // int end
         0: .line 291
            return
        end local 4 // int end
        end local 3 // int start
        end local 2 // java.lang.Object what
        end local 1 // android.text.Spannable s
        end local 0 // android.text.method.MultiTapKeyListener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/method/MultiTapKeyListener;
            0    1     1      s  Landroid/text/Spannable;
            0    1     2   what  Ljava/lang/Object;
            0    1     3  start  I
            0    1     4    end  I
    MethodParameters:
       Name  Flags
      s      
      what   
      start  
      end    
}
SourceFile: "MultiTapKeyListener.java"
NestMembers:
  android.text.method.MultiTapKeyListener$Timeout
InnerClasses:
  private Timeout = android.text.method.MultiTapKeyListener$Timeout of android.text.method.MultiTapKeyListener
  public final Capitalize = android.text.method.TextKeyListener$Capitalize of android.text.method.TextKeyListener