public class android.text.Selection
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.text.Selection
  super_class: java.lang.Object
{
  private static final java.lang.Object SELECTION_MEMORY;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.Object SELECTION_START;
    descriptor: Ljava/lang/Object;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final java.lang.Object SELECTION_END;
    descriptor: Ljava/lang/Object;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 541
            new android.text.Selection$MEMORY
            dup
            invokespecial android.text.Selection$MEMORY.<init>:()V
            putstatic android.text.Selection.SELECTION_MEMORY:Ljava/lang/Object;
         1: .line 547
            new android.text.Selection$START
            dup
            invokespecial android.text.Selection$START.<init>:()V
            putstatic android.text.Selection.SELECTION_START:Ljava/lang/Object;
         2: .line 548
            new android.text.Selection$END
            dup
            invokespecial android.text.Selection$END.<init>:()V
            putstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.text.Selection this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.text.Selection this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/text/Selection;

  public static final int getSelectionStart(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.CharSequence text
         0: .line 40
            aload 0 /* text */
            instanceof android.text.Spanned
            ifeq 2
         1: .line 41
            aload 0 /* text */
            checkcast android.text.Spanned
            getstatic android.text.Selection.SELECTION_START:Ljava/lang/Object;
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            ireturn
         2: .line 43
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  text  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      text  

  public static final int getSelectionEnd(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.CharSequence text
         0: .line 51
            aload 0 /* text */
            instanceof android.text.Spanned
            ifeq 2
         1: .line 52
            aload 0 /* text */
            checkcast android.text.Spanned
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            ireturn
         2: .line 54
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  text  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      text  

  private static int getSelectionMemory(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.CharSequence text
         0: .line 58
            aload 0 /* text */
            instanceof android.text.Spanned
            ifeq 2
         1: .line 59
            aload 0 /* text */
            checkcast android.text.Spanned
            getstatic android.text.Selection.SELECTION_MEMORY:Ljava/lang/Object;
            invokeinterface android.text.Spanned.getSpanStart:(Ljava/lang/Object;)I
            ireturn
         2: .line 61
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // java.lang.CharSequence text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  text  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      text  

  public static void setSelection(android.text.Spannable, int, int);
    descriptor: (Landroid/text/Spannable;II)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.text.Spannable text
        start local 1 // int start
        start local 2 // int stop
         0: .line 77
            aload 0 /* text */
            iload 1 /* start */
            iload 2 /* stop */
            iconst_m1
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;III)V
         1: .line 78
            return
        end local 2 // int stop
        end local 1 // int start
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   text  Landroid/text/Spannable;
            0    2     1  start  I
            0    2     2   stop  I
    MethodParameters:
       Name  Flags
      text   
      start  
      stop   

  private static void setSelection(android.text.Spannable, int, int, int);
    descriptor: (Landroid/text/Spannable;III)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.text.Spannable text
        start local 1 // int start
        start local 2 // int stop
        start local 3 // int memory
         0: .line 89
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 4 /* ostart */
        start local 4 // int ostart
         1: .line 90
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 5 /* oend */
        start local 5 // int oend
         2: .line 92
            iload 4 /* ostart */
            iload 1 /* start */
            if_icmpne 3
            iload 5 /* oend */
            iload 2 /* stop */
            if_icmpeq 8
         3: .line 93
      StackMap locals: int int
      StackMap stack:
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_START:Ljava/lang/Object;
            iload 1 /* start */
            iload 1 /* start */
         4: .line 94
            sipush 546
         5: .line 93
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         6: .line 95
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            iload 2 /* stop */
            iload 2 /* stop */
            bipush 34
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         7: .line 96
            aload 0 /* text */
            iload 3 /* memory */
            invokestatic android.text.Selection.updateMemory:(Landroid/text/Spannable;I)V
         8: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 5 // int oend
        end local 4 // int ostart
        end local 3 // int memory
        end local 2 // int stop
        end local 1 // int start
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    text  Landroid/text/Spannable;
            0    9     1   start  I
            0    9     2    stop  I
            0    9     3  memory  I
            1    9     4  ostart  I
            2    9     5    oend  I
    MethodParameters:
        Name  Flags
      text    
      start   
      stop    
      memory  

  private static void updateMemory(android.text.Spannable, int);
    descriptor: (Landroid/text/Spannable;I)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // int memory
         0: .line 106
            iload 1 /* memory */
            iconst_m1
            if_icmple 8
         1: .line 107
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionMemory:(Ljava/lang/CharSequence;)I
            istore 2 /* currentMemory */
        start local 2 // int currentMemory
         2: .line 108
            iload 1 /* memory */
            iload 2 /* currentMemory */
            if_icmpeq 9
         3: .line 109
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_MEMORY:Ljava/lang/Object;
            iload 1 /* memory */
            iload 1 /* memory */
            bipush 34
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         4: .line 110
            iload 2 /* currentMemory */
            iconst_m1
            if_icmpne 9
         5: .line 112
            new android.text.Selection$MemoryTextWatcher
            dup
            invokespecial android.text.Selection$MemoryTextWatcher.<init>:()V
            astore 3 /* watcher */
        start local 3 // android.text.TextWatcher watcher
         6: .line 113
            aload 0 /* text */
            aload 3 /* watcher */
            iconst_0
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            bipush 18
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
        end local 3 // android.text.TextWatcher watcher
        end local 2 // int currentMemory
         7: .line 116
            goto 9
         8: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            invokestatic android.text.Selection.removeMemory:(Landroid/text/Spannable;)V
         9: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int memory
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           text  Landroid/text/Spannable;
            0   10     1         memory  I
            2    7     2  currentMemory  I
            6    7     3        watcher  Landroid/text/TextWatcher;
    MethodParameters:
        Name  Flags
      text    
      memory  

  private static void removeMemory(android.text.Spannable);
    descriptor: (Landroid/text/Spannable;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // android.text.Spannable text
         0: .line 122
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_MEMORY:Ljava/lang/Object;
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
         1: .line 123
            aload 0 /* text */
            iconst_0
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            ldc Landroid/text/Selection$MemoryTextWatcher;
            invokeinterface android.text.Spannable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.Selection$MemoryTextWatcher[]
            astore 1 /* watchers */
        start local 1 // android.text.Selection$MemoryTextWatcher[] watchers
         2: .line 124
            aload 1 /* watchers */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 6
      StackMap locals: android.text.Spannable android.text.Selection$MemoryTextWatcher[] top int int android.text.Selection$MemoryTextWatcher[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* watcher */
        start local 2 // android.text.Selection$MemoryTextWatcher watcher
         4: .line 125
            aload 0 /* text */
            aload 2 /* watcher */
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
        end local 2 // android.text.Selection$MemoryTextWatcher watcher
         5: .line 124
            iinc 3 1
      StackMap locals:
      StackMap stack:
         6: iload 3
            iload 4
            if_icmplt 3
         7: .line 127
            return
        end local 1 // android.text.Selection$MemoryTextWatcher[] watchers
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      text  Landroid/text/Spannable;
            2    8     1  watchers  [Landroid/text/Selection$MemoryTextWatcher;
            4    5     2   watcher  Landroid/text/Selection$MemoryTextWatcher;
    MethodParameters:
      Name  Flags
      text  

  public static final void setSelection(android.text.Spannable, int);
    descriptor: (Landroid/text/Spannable;I)V
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // int index
         0: .line 152
            aload 0 /* text */
            iload 1 /* index */
            iload 1 /* index */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         1: .line 153
            return
        end local 1 // int index
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   text  Landroid/text/Spannable;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      text   
      index  

  public static final void selectAll(android.text.Spannable);
    descriptor: (Landroid/text/Spannable;)V
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.text.Spannable text
         0: .line 159
            aload 0 /* text */
            iconst_0
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;II)V
         1: .line 160
            return
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  text  Landroid/text/Spannable;
    MethodParameters:
      Name  Flags
      text  

  public static final void extendSelection(android.text.Spannable, int);
    descriptor: (Landroid/text/Spannable;I)V
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // int index
         0: .line 166
            aload 0 /* text */
            iload 1 /* index */
            iconst_m1
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;II)V
         1: .line 167
            return
        end local 1 // int index
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   text  Landroid/text/Spannable;
            0    2     1  index  I
    MethodParameters:
       Name  Flags
      text   
      index  

  private static void extendSelection(android.text.Spannable, int, int);
    descriptor: (Landroid/text/Spannable;II)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.text.Spannable text
        start local 1 // int index
        start local 2 // int memory
         0: .line 173
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            invokeinterface android.text.Spannable.getSpanStart:(Ljava/lang/Object;)I
            iload 1 /* index */
            if_icmpeq 2
         1: .line 174
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            iload 1 /* index */
            iload 1 /* index */
            bipush 34
            invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
         2: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 2 /* memory */
            invokestatic android.text.Selection.updateMemory:(Landroid/text/Spannable;I)V
         3: .line 177
            return
        end local 2 // int memory
        end local 1 // int index
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    text  Landroid/text/Spannable;
            0    4     1   index  I
            0    4     2  memory  I
    MethodParameters:
        Name  Flags
      text    
      index   
      memory  

  public static final void removeSelection(android.text.Spannable);
    descriptor: (Landroid/text/Spannable;)V
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.text.Spannable text
         0: .line 183
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_START:Ljava/lang/Object;
            sipush 512
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;I)V
         1: .line 184
            aload 0 /* text */
            getstatic android.text.Selection.SELECTION_END:Ljava/lang/Object;
            invokeinterface android.text.Spannable.removeSpan:(Ljava/lang/Object;)V
         2: .line 185
            aload 0 /* text */
            invokestatic android.text.Selection.removeMemory:(Landroid/text/Spannable;)V
         3: .line 186
            return
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  text  Landroid/text/Spannable;
    MethodParameters:
      Name  Flags
      text  

  public static boolean moveUp(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 198
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 2 /* start */
        start local 2 // int start
         1: .line 199
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 3 /* end */
        start local 3 // int end
         2: .line 201
            iload 2 /* start */
            iload 3 /* end */
            if_icmpeq 9
         3: .line 202
            iload 2 /* start */
            iload 3 /* end */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* min */
        start local 4 // int min
         4: .line 203
            iload 2 /* start */
            iload 3 /* end */
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* max */
        start local 5 // int max
         5: .line 205
            aload 0 /* text */
            iload 4 /* min */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         6: .line 207
            iload 4 /* min */
            ifne 8
            iload 5 /* max */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            if_icmpne 8
         7: .line 208
            iconst_0
            ireturn
         8: .line 211
      StackMap locals: android.text.Spannable android.text.Layout int int int int
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // int max
        end local 4 // int min
         9: .line 213
      StackMap locals:
      StackMap stack:
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
        10: .line 215
            iload 4 /* line */
            ifle 14
        11: .line 217
            aload 0 /* text */
            aload 1 /* layout */
            iload 4 /* line */
            iload 3 /* end */
            iconst_m1
            iconst_0
        12: .line 216
            invokestatic android.text.Selection.setSelectionAndMemory:(Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
        13: .line 218
            iconst_1
            ireturn
        14: .line 219
      StackMap locals: int
      StackMap stack:
            iload 3 /* end */
            ifeq 17
        15: .line 220
            aload 0 /* text */
            iconst_0
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        16: .line 221
            iconst_1
            ireturn
        end local 4 // int line
        17: .line 225
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    text  Landroid/text/Spannable;
            0   18     1  layout  Landroid/text/Layout;
            1   18     2   start  I
            2   18     3     end  I
            4    9     4     min  I
            5    9     5     max  I
           10   17     4    line  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  private static void setSelectionAndMemory(android.text.Spannable, android.text.Layout, int, int, int, boolean);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=6
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
        start local 2 // int line
        start local 3 // int end
        start local 4 // int direction
        start local 5 // boolean extend
         0: .line 236
            aload 1 /* layout */
            iload 2 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
         1: .line 237
            aload 1 /* layout */
            iload 2 /* line */
            iload 4 /* direction */
            iadd
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
         2: .line 236
            if_icmpne 13
         3: .line 238
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionMemory:(Ljava/lang/CharSequence;)I
            istore 8 /* memory */
        start local 8 // int memory
         4: .line 239
            iload 8 /* memory */
            iconst_m1
            if_icmple 9
         5: .line 241
            aload 1 /* layout */
            iload 8 /* memory */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            fstore 9 /* h */
        start local 9 // float h
         6: .line 242
            aload 1 /* layout */
            iload 2 /* line */
            iload 4 /* direction */
            iadd
            fload 9 /* h */
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IF)I
            istore 6 /* move */
        start local 6 // int move
         7: .line 243
            iload 8 /* memory */
            istore 7 /* newMemory */
        end local 9 // float h
        start local 7 // int newMemory
         8: .line 244
            goto 15
        end local 7 // int newMemory
        end local 6 // int move
         9: .line 246
      StackMap locals: android.text.Spannable android.text.Layout int int int int top top int
      StackMap stack:
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            fstore 9 /* h */
        start local 9 // float h
        10: .line 247
            aload 1 /* layout */
            iload 2 /* line */
            iload 4 /* direction */
            iadd
            fload 9 /* h */
            invokevirtual android.text.Layout.getOffsetForHorizontal:(IF)I
            istore 6 /* move */
        start local 6 // int move
        11: .line 248
            iload 3 /* end */
            istore 7 /* newMemory */
        end local 9 // float h
        end local 8 // int memory
        start local 7 // int newMemory
        12: .line 250
            goto 15
        end local 7 // int newMemory
        end local 6 // int move
        13: .line 251
      StackMap locals: android.text.Spannable android.text.Layout int int int int
      StackMap stack:
            aload 1 /* layout */
            iload 2 /* line */
            iload 4 /* direction */
            iadd
            invokevirtual android.text.Layout.getLineStart:(I)I
            istore 6 /* move */
        start local 6 // int move
        14: .line 252
            iconst_m1
            istore 7 /* newMemory */
        start local 7 // int newMemory
        15: .line 255
      StackMap locals: int int
      StackMap stack:
            iload 5 /* extend */
            ifeq 18
        16: .line 256
            aload 0 /* text */
            iload 6 /* move */
            iload 7 /* newMemory */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;II)V
        17: .line 257
            goto 19
        18: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* text */
            iload 6 /* move */
            iload 6 /* move */
            iload 7 /* newMemory */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;III)V
        19: .line 260
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int newMemory
        end local 6 // int move
        end local 5 // boolean extend
        end local 4 // int direction
        end local 3 // int end
        end local 2 // int line
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       text  Landroid/text/Spannable;
            0   20     1     layout  Landroid/text/Layout;
            0   20     2       line  I
            0   20     3        end  I
            0   20     4  direction  I
            0   20     5     extend  Z
            7    9     6       move  I
           11   13     6       move  I
           14   20     6       move  I
            8    9     7  newMemory  I
           12   13     7  newMemory  I
           15   20     7  newMemory  I
            4   12     8     memory  I
            6    8     9          h  F
           10   12     9          h  F
    MethodParameters:
           Name  Flags
      text       
      layout     
      line       
      end        
      direction  
      extend     

  public static boolean moveDown(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 269
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 2 /* start */
        start local 2 // int start
         1: .line 270
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 3 /* end */
        start local 3 // int end
         2: .line 272
            iload 2 /* start */
            iload 3 /* end */
            if_icmpeq 9
         3: .line 273
            iload 2 /* start */
            iload 3 /* end */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* min */
        start local 4 // int min
         4: .line 274
            iload 2 /* start */
            iload 3 /* end */
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* max */
        start local 5 // int max
         5: .line 276
            aload 0 /* text */
            iload 5 /* max */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         6: .line 278
            iload 4 /* min */
            ifne 8
            iload 5 /* max */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            if_icmpne 8
         7: .line 279
            iconst_0
            ireturn
         8: .line 282
      StackMap locals: android.text.Spannable android.text.Layout int int int int
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // int max
        end local 4 // int min
         9: .line 284
      StackMap locals:
      StackMap stack:
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
        10: .line 286
            iload 4 /* line */
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpge 14
        11: .line 288
            aload 0 /* text */
            aload 1 /* layout */
            iload 4 /* line */
            iload 3 /* end */
            iconst_1
            iconst_0
        12: .line 287
            invokestatic android.text.Selection.setSelectionAndMemory:(Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
        13: .line 289
            iconst_1
            ireturn
        14: .line 290
      StackMap locals: int
      StackMap stack:
            iload 3 /* end */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            if_icmpeq 17
        15: .line 291
            aload 0 /* text */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
        16: .line 292
            iconst_1
            ireturn
        end local 4 // int line
        17: .line 296
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    text  Landroid/text/Spannable;
            0   18     1  layout  Landroid/text/Layout;
            1   18     2   start  I
            2   18     3     end  I
            4    9     4     min  I
            5    9     5     max  I
           10   17     4    line  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean moveLeft(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 305
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 2 /* start */
        start local 2 // int start
         1: .line 306
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 3 /* end */
        start local 3 // int end
         2: .line 308
            iload 2 /* start */
            iload 3 /* end */
            if_icmpeq 5
         3: .line 309
            aload 0 /* text */
            aload 1 /* layout */
            iconst_m1
            iload 2 /* start */
            iload 3 /* end */
            invokestatic android.text.Selection.chooseHorizontal:(Landroid/text/Layout;III)I
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         4: .line 310
            iconst_1
            ireturn
         5: .line 312
      StackMap locals: int int
      StackMap stack:
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getOffsetToLeftOf:(I)I
            istore 4 /* to */
        start local 4 // int to
         6: .line 314
            iload 4 /* to */
            iload 3 /* end */
            if_icmpeq 9
         7: .line 315
            aload 0 /* text */
            iload 4 /* to */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         8: .line 316
            iconst_1
            ireturn
        end local 4 // int to
         9: .line 320
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    text  Landroid/text/Spannable;
            0   10     1  layout  Landroid/text/Layout;
            1   10     2   start  I
            2   10     3     end  I
            6    9     4      to  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean moveRight(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 330
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionStart:(Ljava/lang/CharSequence;)I
            istore 2 /* start */
        start local 2 // int start
         1: .line 331
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 3 /* end */
        start local 3 // int end
         2: .line 333
            iload 2 /* start */
            iload 3 /* end */
            if_icmpeq 5
         3: .line 334
            aload 0 /* text */
            aload 1 /* layout */
            iconst_1
            iload 2 /* start */
            iload 3 /* end */
            invokestatic android.text.Selection.chooseHorizontal:(Landroid/text/Layout;III)I
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         4: .line 335
            iconst_1
            ireturn
         5: .line 337
      StackMap locals: int int
      StackMap stack:
            aload 1 /* layout */
            iload 3 /* end */
            invokevirtual android.text.Layout.getOffsetToRightOf:(I)I
            istore 4 /* to */
        start local 4 // int to
         6: .line 339
            iload 4 /* to */
            iload 3 /* end */
            if_icmpeq 9
         7: .line 340
            aload 0 /* text */
            iload 4 /* to */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         8: .line 341
            iconst_1
            ireturn
        end local 4 // int to
         9: .line 345
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    text  Landroid/text/Spannable;
            0   10     1  layout  Landroid/text/Layout;
            1   10     2   start  I
            2   10     3     end  I
            6    9     4      to  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendUp(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 353
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 2 /* end */
        start local 2 // int end
         1: .line 354
            aload 1 /* layout */
            iload 2 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         2: .line 356
            iload 3 /* line */
            ifle 5
         3: .line 357
            aload 0 /* text */
            aload 1 /* layout */
            iload 3 /* line */
            iload 2 /* end */
            iconst_m1
            iconst_1
            invokestatic android.text.Selection.setSelectionAndMemory:(Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
         4: .line 358
            iconst_1
            ireturn
         5: .line 359
      StackMap locals: int int
      StackMap stack:
            iload 2 /* end */
            ifeq 8
         6: .line 360
            aload 0 /* text */
            iconst_0
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         7: .line 361
            iconst_1
            ireturn
         8: .line 364
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int line
        end local 2 // int end
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    text  Landroid/text/Spannable;
            0    9     1  layout  Landroid/text/Layout;
            1    9     2     end  I
            2    9     3    line  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendDown(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 372
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 2 /* end */
        start local 2 // int end
         1: .line 373
            aload 1 /* layout */
            iload 2 /* end */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 3 /* line */
        start local 3 // int line
         2: .line 375
            iload 3 /* line */
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpge 5
         3: .line 376
            aload 0 /* text */
            aload 1 /* layout */
            iload 3 /* line */
            iload 2 /* end */
            iconst_1
            iconst_1
            invokestatic android.text.Selection.setSelectionAndMemory:(Landroid/text/Spannable;Landroid/text/Layout;IIIZ)V
         4: .line 377
            iconst_1
            ireturn
         5: .line 378
      StackMap locals: int int
      StackMap stack:
            iload 2 /* end */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            if_icmpeq 8
         6: .line 379
            aload 0 /* text */
            aload 0 /* text */
            invokeinterface android.text.Spannable.length:()I
            iconst_m1
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;II)V
         7: .line 380
            iconst_1
            ireturn
         8: .line 383
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int line
        end local 2 // int end
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    text  Landroid/text/Spannable;
            0    9     1  layout  Landroid/text/Layout;
            1    9     2     end  I
            2    9     3    line  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendLeft(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 391
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 2 /* end */
        start local 2 // int end
         1: .line 392
            aload 1 /* layout */
            iload 2 /* end */
            invokevirtual android.text.Layout.getOffsetToLeftOf:(I)I
            istore 3 /* to */
        start local 3 // int to
         2: .line 394
            iload 3 /* to */
            iload 2 /* end */
            if_icmpeq 5
         3: .line 395
            aload 0 /* text */
            iload 3 /* to */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         4: .line 396
            iconst_1
            ireturn
         5: .line 399
      StackMap locals: int int
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int to
        end local 2 // int end
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    text  Landroid/text/Spannable;
            0    6     1  layout  Landroid/text/Layout;
            1    6     2     end  I
            2    6     3      to  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendRight(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 407
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 2 /* end */
        start local 2 // int end
         1: .line 408
            aload 1 /* layout */
            iload 2 /* end */
            invokevirtual android.text.Layout.getOffsetToRightOf:(I)I
            istore 3 /* to */
        start local 3 // int to
         2: .line 410
            iload 3 /* to */
            iload 2 /* end */
            if_icmpeq 5
         3: .line 411
            aload 0 /* text */
            iload 3 /* to */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         4: .line 412
            iconst_1
            ireturn
         5: .line 415
      StackMap locals: int int
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int to
        end local 2 // int end
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    text  Landroid/text/Spannable;
            0    6     1  layout  Landroid/text/Layout;
            1    6     2     end  I
            2    6     3      to  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendToLeftEdge(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 419
            aload 0 /* text */
            aload 1 /* layout */
            iconst_m1
            invokestatic android.text.Selection.findEdge:(Landroid/text/Spannable;Landroid/text/Layout;I)I
            istore 2 /* where */
        start local 2 // int where
         1: .line 420
            aload 0 /* text */
            iload 2 /* where */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         2: .line 421
            iconst_1
            ireturn
        end local 2 // int where
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    text  Landroid/text/Spannable;
            0    3     1  layout  Landroid/text/Layout;
            1    3     2   where  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean extendToRightEdge(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 425
            aload 0 /* text */
            aload 1 /* layout */
            iconst_1
            invokestatic android.text.Selection.findEdge:(Landroid/text/Spannable;Landroid/text/Layout;I)I
            istore 2 /* where */
        start local 2 // int where
         1: .line 426
            aload 0 /* text */
            iload 2 /* where */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         2: .line 427
            iconst_1
            ireturn
        end local 2 // int where
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    text  Landroid/text/Spannable;
            0    3     1  layout  Landroid/text/Layout;
            1    3     2   where  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean moveToLeftEdge(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 431
            aload 0 /* text */
            aload 1 /* layout */
            iconst_m1
            invokestatic android.text.Selection.findEdge:(Landroid/text/Spannable;Landroid/text/Layout;I)I
            istore 2 /* where */
        start local 2 // int where
         1: .line 432
            aload 0 /* text */
            iload 2 /* where */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         2: .line 433
            iconst_1
            ireturn
        end local 2 // int where
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    text  Landroid/text/Spannable;
            0    3     1  layout  Landroid/text/Layout;
            1    3     2   where  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean moveToRightEdge(android.text.Spannable, android.text.Layout);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
         0: .line 437
            aload 0 /* text */
            aload 1 /* layout */
            iconst_1
            invokestatic android.text.Selection.findEdge:(Landroid/text/Spannable;Landroid/text/Layout;I)I
            istore 2 /* where */
        start local 2 // int where
         1: .line 438
            aload 0 /* text */
            iload 2 /* where */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         2: .line 439
            iconst_1
            ireturn
        end local 2 // int where
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    text  Landroid/text/Spannable;
            0    3     1  layout  Landroid/text/Layout;
            1    3     2   where  I
    MethodParameters:
        Name  Flags
      text    
      layout  

  public static boolean moveToPreceding(android.text.Spannable, android.text.Selection$PositionIterator, boolean);
    descriptor: (Landroid/text/Spannable;Landroid/text/Selection$PositionIterator;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Selection$PositionIterator iter
        start local 2 // boolean extendSelection
         0: .line 453
            aload 1 /* iter */
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            invokeinterface android.text.Selection$PositionIterator.preceding:(I)I
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 454
            iload 3 /* offset */
            iconst_m1
            if_icmpeq 6
         2: .line 455
            iload 2 /* extendSelection */
            ifeq 5
         3: .line 456
            aload 0 /* text */
            iload 3 /* offset */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         4: .line 457
            goto 6
         5: .line 458
      StackMap locals: int
      StackMap stack:
            aload 0 /* text */
            iload 3 /* offset */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         6: .line 461
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int offset
        end local 2 // boolean extendSelection
        end local 1 // android.text.Selection$PositionIterator iter
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             text  Landroid/text/Spannable;
            0    7     1             iter  Landroid/text/Selection$PositionIterator;
            0    7     2  extendSelection  Z
            1    7     3           offset  I
    MethodParameters:
                 Name  Flags
      text             
      iter             
      extendSelection  

  public static boolean moveToFollowing(android.text.Spannable, android.text.Selection$PositionIterator, boolean);
    descriptor: (Landroid/text/Spannable;Landroid/text/Selection$PositionIterator;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Selection$PositionIterator iter
        start local 2 // boolean extendSelection
         0: .line 467
            aload 1 /* iter */
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            invokeinterface android.text.Selection$PositionIterator.following:(I)I
            istore 3 /* offset */
        start local 3 // int offset
         1: .line 468
            iload 3 /* offset */
            iconst_m1
            if_icmpeq 6
         2: .line 469
            iload 2 /* extendSelection */
            ifeq 5
         3: .line 470
            aload 0 /* text */
            iload 3 /* offset */
            invokestatic android.text.Selection.extendSelection:(Landroid/text/Spannable;I)V
         4: .line 471
            goto 6
         5: .line 472
      StackMap locals: int
      StackMap stack:
            aload 0 /* text */
            iload 3 /* offset */
            invokestatic android.text.Selection.setSelection:(Landroid/text/Spannable;I)V
         6: .line 475
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // int offset
        end local 2 // boolean extendSelection
        end local 1 // android.text.Selection$PositionIterator iter
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             text  Landroid/text/Spannable;
            0    7     1             iter  Landroid/text/Selection$PositionIterator;
            0    7     2  extendSelection  Z
            1    7     3           offset  I
    MethodParameters:
                 Name  Flags
      text             
      iter             
      extendSelection  

  private static int findEdge(android.text.Spannable, android.text.Layout, int);
    descriptor: (Landroid/text/Spannable;Landroid/text/Layout;I)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=3
        start local 0 // android.text.Spannable text
        start local 1 // android.text.Layout layout
        start local 2 // int dir
         0: .line 479
            aload 0 /* text */
            invokestatic android.text.Selection.getSelectionEnd:(Ljava/lang/CharSequence;)I
            istore 3 /* pt */
        start local 3 // int pt
         1: .line 480
            aload 1 /* layout */
            iload 3 /* pt */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line */
        start local 4 // int line
         2: .line 481
            aload 1 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 5 /* pdir */
        start local 5 // int pdir
         3: .line 483
            iload 2 /* dir */
            iload 5 /* pdir */
            imul
            ifge 5
         4: .line 484
            aload 1 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineStart:(I)I
            ireturn
         5: .line 486
      StackMap locals: int int int
      StackMap stack:
            aload 1 /* layout */
            iload 4 /* line */
            invokevirtual android.text.Layout.getLineEnd:(I)I
            istore 6 /* end */
        start local 6 // int end
         6: .line 488
            iload 4 /* line */
            aload 1 /* layout */
            invokevirtual android.text.Layout.getLineCount:()I
            iconst_1
            isub
            if_icmpne 8
         7: .line 489
            iload 6 /* end */
            ireturn
         8: .line 491
      StackMap locals: int
      StackMap stack:
            iload 6 /* end */
            iconst_1
            isub
            ireturn
        end local 6 // int end
        end local 5 // int pdir
        end local 4 // int line
        end local 3 // int pt
        end local 2 // int dir
        end local 1 // android.text.Layout layout
        end local 0 // android.text.Spannable text
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    text  Landroid/text/Spannable;
            0    9     1  layout  Landroid/text/Layout;
            0    9     2     dir  I
            1    9     3      pt  I
            2    9     4    line  I
            3    9     5    pdir  I
            6    9     6     end  I
    MethodParameters:
        Name  Flags
      text    
      layout  
      dir     

  private static int chooseHorizontal(android.text.Layout, int, int, int);
    descriptor: (Landroid/text/Layout;III)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // android.text.Layout layout
        start local 1 // int direction
        start local 2 // int off1
        start local 3 // int off2
         0: .line 497
            aload 0 /* layout */
            iload 2 /* off1 */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 4 /* line1 */
        start local 4 // int line1
         1: .line 498
            aload 0 /* layout */
            iload 3 /* off2 */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 5 /* line2 */
        start local 5 // int line2
         2: .line 500
            iload 4 /* line1 */
            iload 5 /* line2 */
            if_icmpne 12
         3: .line 503
            aload 0 /* layout */
            iload 2 /* off1 */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            fstore 6 /* h1 */
        start local 6 // float h1
         4: .line 504
            aload 0 /* layout */
            iload 3 /* off2 */
            invokevirtual android.text.Layout.getPrimaryHorizontal:(I)F
            fstore 7 /* h2 */
        start local 7 // float h2
         5: .line 506
            iload 1 /* direction */
            ifge 9
         6: .line 509
            fload 6 /* h1 */
            fload 7 /* h2 */
            fcmpg
            ifge 8
         7: .line 510
            iload 2 /* off1 */
            ireturn
         8: .line 512
      StackMap locals: android.text.Layout int int int int int float float
      StackMap stack:
            iload 3 /* off2 */
            ireturn
         9: .line 516
      StackMap locals:
      StackMap stack:
            fload 6 /* h1 */
            fload 7 /* h2 */
            fcmpl
            ifle 11
        10: .line 517
            iload 2 /* off1 */
            ireturn
        11: .line 519
      StackMap locals:
      StackMap stack:
            iload 3 /* off2 */
            ireturn
        end local 7 // float h2
        end local 6 // float h1
        12: .line 528
      StackMap locals:
      StackMap stack:
            aload 0 /* layout */
            iload 2 /* off1 */
            invokevirtual android.text.Layout.getLineForOffset:(I)I
            istore 6 /* line */
        start local 6 // int line
        13: .line 529
            aload 0 /* layout */
            iload 6 /* line */
            invokevirtual android.text.Layout.getParagraphDirection:(I)I
            istore 7 /* textdir */
        start local 7 // int textdir
        14: .line 531
            iload 7 /* textdir */
            iload 1 /* direction */
            if_icmpne 16
        15: .line 532
            iload 2 /* off1 */
            iload 3 /* off2 */
            invokestatic java.lang.Math.max:(II)I
            ireturn
        16: .line 534
      StackMap locals: int int
      StackMap stack:
            iload 2 /* off1 */
            iload 3 /* off2 */
            invokestatic java.lang.Math.min:(II)I
            ireturn
        end local 7 // int textdir
        end local 6 // int line
        end local 5 // int line2
        end local 4 // int line1
        end local 3 // int off2
        end local 2 // int off1
        end local 1 // int direction
        end local 0 // android.text.Layout layout
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   17     0     layout  Landroid/text/Layout;
            0   17     1  direction  I
            0   17     2       off1  I
            0   17     3       off2  I
            1   17     4      line1  I
            2   17     5      line2  I
            4   12     6         h1  F
            5   12     7         h2  F
           13   17     6       line  I
           14   17     7    textdir  I
    MethodParameters:
           Name  Flags
      layout     
      direction  
      off1       
      off2       
}
SourceFile: "Selection.java"
NestMembers:
  android.text.Selection$END  android.text.Selection$MEMORY  android.text.Selection$MemoryTextWatcher  android.text.Selection$PositionIterator  android.text.Selection$START
InnerClasses:
  private final END = android.text.Selection$END of android.text.Selection
  private final MEMORY = android.text.Selection$MEMORY of android.text.Selection
  public final MemoryTextWatcher = android.text.Selection$MemoryTextWatcher of android.text.Selection
  public abstract PositionIterator = android.text.Selection$PositionIterator of android.text.Selection
  private final START = android.text.Selection$START of android.text.Selection