class android.widget.SpellChecker$SpellParser
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.widget.SpellChecker$SpellParser
  super_class: java.lang.Object
{
  private java.lang.Object mRange;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  final android.widget.SpellChecker this$0;
    descriptor: Landroid/widget/SpellChecker;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private void <init>(android.widget.SpellChecker);
    descriptor: (Landroid/widget/SpellChecker;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.widget.SpellChecker$SpellParser this
         0: .line 503
            aload 0 /* this */
            aload 1
            putfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 504
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
         2: .line 503
            return
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/widget/SpellChecker$SpellParser;
    MethodParameters:
        Name  Flags
      this$0  final

  public void parse(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.widget.SpellChecker$SpellParser this
        start local 1 // int start
        start local 2 // int end
         0: .line 507
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.length:()I
            istore 3 /* max */
        start local 3 // int max
         1: .line 509
            iload 2 /* end */
            iload 3 /* max */
            if_icmple 5
         2: .line 510
            getstatic android.widget.SpellChecker.TAG:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Parse invalid region, from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         3: .line 511
            iload 3 /* max */
            istore 4 /* parseEnd */
        start local 4 // int parseEnd
         4: .line 512
            goto 6
        end local 4 // int parseEnd
         5: .line 513
      StackMap locals: int
      StackMap stack:
            iload 2 /* end */
            istore 4 /* parseEnd */
        start local 4 // int parseEnd
         6: .line 515
      StackMap locals: int
      StackMap stack:
            iload 4 /* parseEnd */
            iload 1 /* start */
            if_icmple 9
         7: .line 516
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            iload 1 /* start */
            iload 4 /* parseEnd */
            invokevirtual android.widget.SpellChecker$SpellParser.setRangeSpan:(Landroid/text/Editable;II)V
         8: .line 517
            aload 0 /* this */
            invokevirtual android.widget.SpellChecker$SpellParser.parse:()V
         9: .line 519
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int parseEnd
        end local 3 // int max
        end local 2 // int end
        end local 1 // int start
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Landroid/widget/SpellChecker$SpellParser;
            0   10     1     start  I
            0   10     2       end  I
            1   10     3       max  I
            4    5     4  parseEnd  I
            6   10     4  parseEnd  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public boolean isFinished();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.SpellChecker$SpellParser this
         0: .line 522
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            ifge 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/SpellChecker$SpellParser;

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.widget.SpellChecker$SpellParser this
         0: .line 526
            aload 0 /* this */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            invokevirtual android.widget.SpellChecker$SpellParser.removeRangeSpan:(Landroid/text/Editable;)V
         1: .line 527
            return
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/widget/SpellChecker$SpellParser;

  private void setRangeSpan(android.text.Editable, int, int);
    descriptor: (Landroid/text/Editable;II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // android.widget.SpellChecker$SpellParser this
        start local 1 // android.text.Editable editable
        start local 2 // int start
        start local 3 // int end
         0: .line 533
            aload 1 /* editable */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            iload 2 /* start */
            iload 3 /* end */
            bipush 33
            invokeinterface android.text.Editable.setSpan:(Ljava/lang/Object;III)V
         1: .line 534
            return
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Editable editable
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/widget/SpellChecker$SpellParser;
            0    2     1  editable  Landroid/text/Editable;
            0    2     2     start  I
            0    2     3       end  I
    MethodParameters:
          Name  Flags
      editable  
      start     
      end       

  private void removeRangeSpan(android.text.Editable);
    descriptor: (Landroid/text/Editable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.widget.SpellChecker$SpellParser this
        start local 1 // android.text.Editable editable
         0: .line 541
            aload 1 /* editable */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            invokeinterface android.text.Editable.removeSpan:(Ljava/lang/Object;)V
         1: .line 542
            return
        end local 1 // android.text.Editable editable
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/widget/SpellChecker$SpellParser;
            0    2     1  editable  Landroid/text/Editable;
    MethodParameters:
          Name  Flags
      editable  

  public void parse();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=19, args_size=1
        start local 0 // android.widget.SpellChecker$SpellParser this
         0: .line 545
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mTextView:Landroid/widget/TextView;
            invokevirtual android.widget.TextView.getText:()Ljava/lang/CharSequence;
            checkcast android.text.Editable
            astore 1 /* editable */
        start local 1 // android.text.Editable editable
         1: .line 548
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mIsSentenceSpellCheckSupported:Z
            ifeq 5
         2: .line 552
            iconst_0
            aload 1 /* editable */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            bipush 50
            isub
         3: .line 551
            invokestatic java.lang.Math.max:(II)I
            istore 2 /* start */
        start local 2 // int start
         4: .line 553
            goto 6
        end local 2 // int start
         5: .line 554
      StackMap locals: android.text.Editable
      StackMap stack:
            aload 1 /* editable */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 2 /* start */
        start local 2 // int start
         6: .line 557
      StackMap locals: int
      StackMap stack:
            aload 1 /* editable */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.mRange:Ljava/lang/Object;
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 3 /* end */
        start local 3 // int end
         7: .line 559
            iload 3 /* end */
            iload 2 /* start */
            sipush 350
            iadd
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* wordIteratorWindowEnd */
        start local 4 // int wordIteratorWindowEnd
         8: .line 560
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            aload 1 /* editable */
            iload 2 /* start */
            iload 4 /* wordIteratorWindowEnd */
            invokevirtual android.text.method.WordIterator.setCharSequence:(Ljava/lang/CharSequence;II)V
         9: .line 563
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 2 /* start */
            invokevirtual android.text.method.WordIterator.preceding:(I)I
            istore 5 /* wordStart */
        start local 5 // int wordStart
        10: .line 565
            iload 5 /* wordStart */
            iconst_m1
            if_icmpne 15
        11: .line 566
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 2 /* start */
            invokevirtual android.text.method.WordIterator.following:(I)I
            istore 6 /* wordEnd */
        start local 6 // int wordEnd
        12: .line 567
            iload 6 /* wordEnd */
            iconst_m1
            if_icmpeq 16
        13: .line 568
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 6 /* wordEnd */
            invokevirtual android.text.method.WordIterator.getBeginning:(I)I
            istore 5 /* wordStart */
        14: .line 570
            goto 16
        end local 6 // int wordEnd
        15: .line 571
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 5 /* wordStart */
            invokevirtual android.text.method.WordIterator.getEnd:(I)I
            istore 6 /* wordEnd */
        start local 6 // int wordEnd
        16: .line 573
      StackMap locals: int
      StackMap stack:
            iload 6 /* wordEnd */
            iconst_m1
            if_icmpne 19
        17: .line 577
            aload 0 /* this */
            aload 1 /* editable */
            invokevirtual android.widget.SpellChecker$SpellParser.removeRangeSpan:(Landroid/text/Editable;)V
        18: .line 578
            return
        19: .line 583
      StackMap locals:
      StackMap stack:
            aload 1 /* editable */
            iload 2 /* start */
            iconst_1
            isub
            iload 3 /* end */
            iconst_1
            iadd
        20: .line 584
            ldc Landroid/text/style/SpellCheckSpan;
        21: .line 583
            invokeinterface android.text.Editable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SpellCheckSpan[]
            astore 7 /* spellCheckSpans */
        start local 7 // android.text.style.SpellCheckSpan[] spellCheckSpans
        22: .line 585
            aload 1 /* editable */
            iload 2 /* start */
            iconst_1
            isub
            iload 3 /* end */
            iconst_1
            iadd
        23: .line 586
            ldc Landroid/text/style/SuggestionSpan;
        24: .line 585
            invokeinterface android.text.Editable.getSpans:(IILjava/lang/Class;)[Ljava/lang/Object;
            checkcast android.text.style.SuggestionSpan[]
            astore 8 /* suggestionSpans */
        start local 8 // android.text.style.SuggestionSpan[] suggestionSpans
        25: .line 588
            iconst_0
            istore 9 /* wordCount */
        start local 9 // int wordCount
        26: .line 589
            iconst_0
            istore 10 /* scheduleOtherSpellCheck */
        start local 10 // boolean scheduleOtherSpellCheck
        27: .line 591
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mIsSentenceSpellCheckSupported:Z
            ifeq 118
        28: .line 592
            iload 4 /* wordIteratorWindowEnd */
            iload 3 /* end */
            if_icmpge 30
        29: .line 597
            iconst_1
            istore 10 /* scheduleOtherSpellCheck */
        30: .line 599
      StackMap locals: android.widget.SpellChecker$SpellParser android.text.Editable int int int int int android.text.style.SpellCheckSpan[] android.text.style.SuggestionSpan[] int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 4 /* wordIteratorWindowEnd */
            invokevirtual android.text.method.WordIterator.preceding:(I)I
            istore 11 /* spellCheckEnd */
        start local 11 // int spellCheckEnd
        31: .line 600
            iload 11 /* spellCheckEnd */
            iconst_m1
            if_icmpeq 32
            iconst_1
            goto 33
      StackMap locals: int
      StackMap stack:
        32: iconst_0
      StackMap locals:
      StackMap stack: int
        33: istore 12 /* correct */
        start local 12 // boolean correct
        34: .line 601
            iload 12 /* correct */
            ifeq 39
        35: .line 602
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 11 /* spellCheckEnd */
            invokevirtual android.text.method.WordIterator.getEnd:(I)I
            istore 11 /* spellCheckEnd */
        36: .line 603
            iload 11 /* spellCheckEnd */
            iconst_m1
            if_icmpeq 37
            iconst_1
            goto 38
      StackMap locals: int
      StackMap stack:
        37: iconst_0
      StackMap locals:
      StackMap stack: int
        38: istore 12 /* correct */
        39: .line 605
      StackMap locals:
      StackMap stack:
            iload 12 /* correct */
            ifne 42
        40: .line 609
            aload 0 /* this */
            aload 1 /* editable */
            invokevirtual android.widget.SpellChecker$SpellParser.removeRangeSpan:(Landroid/text/Editable;)V
        41: .line 610
            return
        42: .line 614
      StackMap locals:
      StackMap stack:
            iload 5 /* wordStart */
            istore 13 /* spellCheckStart */
        start local 13 // int spellCheckStart
        43: .line 615
            iconst_1
            istore 14 /* createSpellCheckSpan */
        start local 14 // boolean createSpellCheckSpan
        44: .line 617
            iconst_0
            istore 15 /* i */
        start local 15 // int i
        45: goto 60
        46: .line 618
      StackMap locals: int int int
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mSpellCheckSpans:[Landroid/text/style/SpellCheckSpan;
            iload 15 /* i */
            aaload
            astore 16 /* spellCheckSpan */
        start local 16 // android.text.style.SpellCheckSpan spellCheckSpan
        47: .line 619
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mIds:[I
            iload 15 /* i */
            iaload
            iflt 59
            aload 16 /* spellCheckSpan */
            invokevirtual android.text.style.SpellCheckSpan.isSpellCheckInProgress:()Z
            ifeq 49
        48: .line 620
            goto 59
        49: .line 622
      StackMap locals: android.text.style.SpellCheckSpan
      StackMap stack:
            aload 1 /* editable */
            aload 16 /* spellCheckSpan */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 17 /* spanStart */
        start local 17 // int spanStart
        50: .line 623
            aload 1 /* editable */
            aload 16 /* spellCheckSpan */
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 18 /* spanEnd */
        start local 18 // int spanEnd
        51: .line 624
            iload 18 /* spanEnd */
            iload 13 /* spellCheckStart */
            if_icmplt 59
            iload 11 /* spellCheckEnd */
            iload 17 /* spanStart */
            if_icmpge 53
        52: .line 626
            goto 59
        53: .line 628
      StackMap locals: int int
      StackMap stack:
            iload 17 /* spanStart */
            iload 13 /* spellCheckStart */
            if_icmpgt 56
            iload 11 /* spellCheckEnd */
            iload 18 /* spanEnd */
            if_icmpgt 56
        54: .line 631
            iconst_0
            istore 14 /* createSpellCheckSpan */
        55: .line 635
            goto 61
        56: .line 638
      StackMap locals:
      StackMap stack:
            aload 1 /* editable */
            aload 16 /* spellCheckSpan */
            invokeinterface android.text.Editable.removeSpan:(Ljava/lang/Object;)V
        57: .line 639
            iload 17 /* spanStart */
            iload 13 /* spellCheckStart */
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* spellCheckStart */
        58: .line 640
            iload 18 /* spanEnd */
            iload 11 /* spellCheckEnd */
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* spellCheckEnd */
        end local 18 // int spanEnd
        end local 17 // int spanStart
        end local 16 // android.text.style.SpellCheckSpan spellCheckSpan
        59: .line 617
      StackMap locals:
      StackMap stack:
            iinc 15 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 15 /* i */
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mLength:I
            if_icmplt 46
        end local 15 // int i
        61: .line 651
      StackMap locals:
      StackMap stack:
            iload 11 /* spellCheckEnd */
            iload 2 /* start */
            if_icmpge 63
        62: .line 652
            goto 70
        63: .line 654
      StackMap locals:
      StackMap stack:
            iload 11 /* spellCheckEnd */
            iload 13 /* spellCheckStart */
            if_icmpgt 68
        64: .line 655
            getstatic android.widget.SpellChecker.TAG:Ljava/lang/String;
            new java.lang.StringBuilder
            dup
            ldc "Trying to spellcheck invalid region, from "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        65: .line 656
            iload 2 /* start */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        66: .line 655
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        67: .line 657
            goto 70
        68: .line 659
      StackMap locals:
      StackMap stack:
            iload 14 /* createSpellCheckSpan */
            ifeq 70
        69: .line 660
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            aload 1 /* editable */
            iload 13 /* spellCheckStart */
            iload 11 /* spellCheckEnd */
            invokevirtual android.widget.SpellChecker.addSpellCheckSpan:(Landroid/text/Editable;II)V
        end local 14 // boolean createSpellCheckSpan
        end local 13 // int spellCheckStart
        70: .line 663
      StackMap locals:
      StackMap stack:
            iload 11 /* spellCheckEnd */
            istore 5 /* wordStart */
        end local 12 // boolean correct
        end local 11 // int spellCheckEnd
        71: .line 664
            goto 119
        72: .line 666
      StackMap locals:
      StackMap stack:
            iload 6 /* wordEnd */
            iload 2 /* start */
            if_icmplt 104
            iload 6 /* wordEnd */
            iload 5 /* wordStart */
            if_icmple 104
        73: .line 667
            iload 9 /* wordCount */
            bipush 50
            if_icmplt 76
        74: .line 668
            iconst_1
            istore 10 /* scheduleOtherSpellCheck */
        75: .line 669
            goto 119
        76: .line 674
      StackMap locals:
      StackMap stack:
            iload 5 /* wordStart */
            iload 2 /* start */
            if_icmpge 79
            iload 6 /* wordEnd */
            iload 2 /* start */
            if_icmple 79
        77: .line 675
            aload 0 /* this */
            aload 1 /* editable */
            iload 2 /* start */
            aload 7 /* spellCheckSpans */
            invokevirtual android.widget.SpellChecker$SpellParser.removeSpansAt:(Landroid/text/Editable;I[Ljava/lang/Object;)V
        78: .line 676
            aload 0 /* this */
            aload 1 /* editable */
            iload 2 /* start */
            aload 8 /* suggestionSpans */
            invokevirtual android.widget.SpellChecker$SpellParser.removeSpansAt:(Landroid/text/Editable;I[Ljava/lang/Object;)V
        79: .line 679
      StackMap locals:
      StackMap stack:
            iload 5 /* wordStart */
            iload 3 /* end */
            if_icmpge 82
            iload 6 /* wordEnd */
            iload 3 /* end */
            if_icmple 82
        80: .line 680
            aload 0 /* this */
            aload 1 /* editable */
            iload 3 /* end */
            aload 7 /* spellCheckSpans */
            invokevirtual android.widget.SpellChecker$SpellParser.removeSpansAt:(Landroid/text/Editable;I[Ljava/lang/Object;)V
        81: .line 681
            aload 0 /* this */
            aload 1 /* editable */
            iload 3 /* end */
            aload 8 /* suggestionSpans */
            invokevirtual android.widget.SpellChecker$SpellParser.removeSpansAt:(Landroid/text/Editable;I[Ljava/lang/Object;)V
        82: .line 685
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 11 /* createSpellCheckSpan */
        start local 11 // boolean createSpellCheckSpan
        83: .line 686
            iload 6 /* wordEnd */
            iload 2 /* start */
            if_icmpne 92
        84: .line 687
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        85: goto 91
        86: .line 688
      StackMap locals: int int
      StackMap stack:
            aload 1 /* editable */
            aload 7 /* spellCheckSpans */
            iload 12 /* i */
            aaload
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 13 /* spanEnd */
        start local 13 // int spanEnd
        87: .line 689
            iload 13 /* spanEnd */
            iload 2 /* start */
            if_icmpne 90
        88: .line 690
            iconst_0
            istore 11 /* createSpellCheckSpan */
        89: .line 691
            goto 92
        end local 13 // int spanEnd
        90: .line 687
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        91: iload 12 /* i */
            aload 7 /* spellCheckSpans */
            arraylength
            if_icmplt 86
        end local 12 // int i
        92: .line 696
      StackMap locals:
      StackMap stack:
            iload 5 /* wordStart */
            iload 3 /* end */
            if_icmpne 101
        93: .line 697
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        94: goto 100
        95: .line 698
      StackMap locals: int
      StackMap stack:
            aload 1 /* editable */
            aload 7 /* spellCheckSpans */
            iload 12 /* i */
            aaload
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 13 /* spanStart */
        start local 13 // int spanStart
        96: .line 699
            iload 13 /* spanStart */
            iload 3 /* end */
            if_icmpne 99
        97: .line 700
            iconst_0
            istore 11 /* createSpellCheckSpan */
        98: .line 701
            goto 101
        end local 13 // int spanStart
        99: .line 697
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
       100: iload 12 /* i */
            aload 7 /* spellCheckSpans */
            arraylength
            if_icmplt 95
        end local 12 // int i
       101: .line 706
      StackMap locals:
      StackMap stack:
            iload 11 /* createSpellCheckSpan */
            ifeq 103
       102: .line 707
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            aload 1 /* editable */
            iload 5 /* wordStart */
            iload 6 /* wordEnd */
            invokevirtual android.widget.SpellChecker.addSpellCheckSpan:(Landroid/text/Editable;II)V
       103: .line 709
      StackMap locals:
      StackMap stack:
            iinc 9 /* wordCount */ 1
        end local 11 // boolean createSpellCheckSpan
       104: .line 713
      StackMap locals:
      StackMap stack:
            iload 6 /* wordEnd */
            istore 11 /* originalWordEnd */
        start local 11 // int originalWordEnd
       105: .line 714
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 6 /* wordEnd */
            invokevirtual android.text.method.WordIterator.following:(I)I
            istore 6 /* wordEnd */
       106: .line 715
            iload 4 /* wordIteratorWindowEnd */
            iload 3 /* end */
            if_icmpge 114
       107: .line 716
            iload 6 /* wordEnd */
            iconst_m1
            if_icmpeq 108
            iload 6 /* wordEnd */
            iload 4 /* wordIteratorWindowEnd */
            if_icmplt 114
       108: .line 718
      StackMap locals: int
      StackMap stack:
            iload 3 /* end */
            iload 11 /* originalWordEnd */
            sipush 350
            iadd
            invokestatic java.lang.Math.min:(II)I
       109: .line 717
            istore 4 /* wordIteratorWindowEnd */
       110: .line 719
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
       111: .line 720
            aload 1 /* editable */
            iload 11 /* originalWordEnd */
            iload 4 /* wordIteratorWindowEnd */
       112: .line 719
            invokevirtual android.text.method.WordIterator.setCharSequence:(Ljava/lang/CharSequence;II)V
       113: .line 721
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 11 /* originalWordEnd */
            invokevirtual android.text.method.WordIterator.following:(I)I
            istore 6 /* wordEnd */
       114: .line 723
      StackMap locals:
      StackMap stack:
            iload 6 /* wordEnd */
            iconst_m1
            if_icmpne 115
            goto 119
       115: .line 724
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            getfield android.widget.SpellChecker.mWordIterator:Landroid/text/method/WordIterator;
            iload 6 /* wordEnd */
            invokevirtual android.text.method.WordIterator.getBeginning:(I)I
            istore 5 /* wordStart */
       116: .line 725
            iload 5 /* wordStart */
            iconst_m1
            if_icmpne 118
       117: .line 726
            goto 119
        end local 11 // int originalWordEnd
       118: .line 665
      StackMap locals:
      StackMap stack:
            iload 5 /* wordStart */
            iload 3 /* end */
            if_icmple 72
       119: .line 731
      StackMap locals:
      StackMap stack:
            iload 10 /* scheduleOtherSpellCheck */
            ifeq 122
            iload 5 /* wordStart */
            iconst_m1
            if_icmpeq 122
            iload 5 /* wordStart */
            iload 3 /* end */
            if_icmpgt 122
       120: .line 733
            aload 0 /* this */
            aload 1 /* editable */
            iload 5 /* wordStart */
            iload 3 /* end */
            invokevirtual android.widget.SpellChecker$SpellParser.setRangeSpan:(Landroid/text/Editable;II)V
       121: .line 734
            goto 123
       122: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* editable */
            invokevirtual android.widget.SpellChecker$SpellParser.removeRangeSpan:(Landroid/text/Editable;)V
       123: .line 738
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.widget.SpellChecker$SpellParser.this$0:Landroid/widget/SpellChecker;
            invokevirtual android.widget.SpellChecker.spellCheck:()V
       124: .line 739
            return
        end local 10 // boolean scheduleOtherSpellCheck
        end local 9 // int wordCount
        end local 8 // android.text.style.SuggestionSpan[] suggestionSpans
        end local 7 // android.text.style.SpellCheckSpan[] spellCheckSpans
        end local 6 // int wordEnd
        end local 5 // int wordStart
        end local 4 // int wordIteratorWindowEnd
        end local 3 // int end
        end local 2 // int start
        end local 1 // android.text.Editable editable
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0  125     0                     this  Landroid/widget/SpellChecker$SpellParser;
            1  125     1                 editable  Landroid/text/Editable;
            4    5     2                    start  I
            6  125     2                    start  I
            7  125     3                      end  I
            8  125     4    wordIteratorWindowEnd  I
           10  125     5                wordStart  I
           12   15     6                  wordEnd  I
           16  125     6                  wordEnd  I
           22  125     7          spellCheckSpans  [Landroid/text/style/SpellCheckSpan;
           25  125     8          suggestionSpans  [Landroid/text/style/SuggestionSpan;
           26  125     9                wordCount  I
           27  125    10  scheduleOtherSpellCheck  Z
           31   71    11            spellCheckEnd  I
           34   71    12                  correct  Z
           43   70    13          spellCheckStart  I
           44   70    14     createSpellCheckSpan  Z
           45   61    15                        i  I
           47   59    16           spellCheckSpan  Landroid/text/style/SpellCheckSpan;
           50   59    17                spanStart  I
           51   59    18                  spanEnd  I
           83  104    11     createSpellCheckSpan  Z
           85   92    12                        i  I
           87   90    13                  spanEnd  I
           94  101    12                        i  I
           96   99    13                spanStart  I
          105  118    11          originalWordEnd  I

  private <T> void removeSpansAt(android.text.Editable, int, );
    descriptor: (Landroid/text/Editable;I[Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=9, args_size=4
        start local 0 // android.widget.SpellChecker$SpellParser this
        start local 1 // android.text.Editable editable
        start local 2 // int offset
        start local 3 // java.lang.Object[] spans
         0: .line 742
            aload 3 /* spans */
            arraylength
            istore 4 /* length */
        start local 4 // int length
         1: .line 743
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 10
         3: .line 744
      StackMap locals: int int
      StackMap stack:
            aload 3 /* spans */
            iload 5 /* i */
            aaload
            astore 6 /* span */
        start local 6 // java.lang.Object span
         4: .line 745
            aload 1 /* editable */
            aload 6 /* span */
            invokeinterface android.text.Editable.getSpanStart:(Ljava/lang/Object;)I
            istore 7 /* start */
        start local 7 // int start
         5: .line 746
            iload 7 /* start */
            iload 2 /* offset */
            if_icmple 6
            goto 9
         6: .line 747
      StackMap locals: java.lang.Object int
      StackMap stack:
            aload 1 /* editable */
            aload 6 /* span */
            invokeinterface android.text.Editable.getSpanEnd:(Ljava/lang/Object;)I
            istore 8 /* end */
        start local 8 // int end
         7: .line 748
            iload 8 /* end */
            iload 2 /* offset */
            if_icmpge 8
            goto 9
         8: .line 749
      StackMap locals: int
      StackMap stack:
            aload 1 /* editable */
            aload 6 /* span */
            invokeinterface android.text.Editable.removeSpan:(Ljava/lang/Object;)V
        end local 8 // int end
        end local 7 // int start
        end local 6 // java.lang.Object span
         9: .line 743
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 5 /* i */
            iload 4 /* length */
            if_icmplt 3
        end local 5 // int i
        11: .line 751
            return
        end local 4 // int length
        end local 3 // java.lang.Object[] spans
        end local 2 // int offset
        end local 1 // android.text.Editable editable
        end local 0 // android.widget.SpellChecker$SpellParser this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0      this  Landroid/widget/SpellChecker$SpellParser;
            0   12     1  editable  Landroid/text/Editable;
            0   12     2    offset  I
            0   12     3     spans  [Ljava/lang/Object;
            1   12     4    length  I
            2   11     5         i  I
            4    9     6      span  TT;
            5    9     7     start  I
            7    9     8       end  I
    Signature: <T:Ljava/lang/Object;>(Landroid/text/Editable;I[TT;)V
    MethodParameters:
          Name  Flags
      editable  
      offset    
      spans     
}
SourceFile: "SpellChecker.java"
NestHost: android.widget.SpellChecker
InnerClasses:
  private SpellParser = android.widget.SpellChecker$SpellParser of android.widget.SpellChecker