public class jdk.internal.org.jline.utils.DiffHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.org.jline.utils.DiffHelper
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.org.jline.utils.DiffHelper this
         0: .line 19
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.org.jline.utils.DiffHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/org/jline/utils/DiffHelper;

  public static java.util.List<jdk.internal.org.jline.utils.DiffHelper$Diff> diff(jdk.internal.org.jline.utils.AttributedString, jdk.internal.org.jline.utils.AttributedString);
    descriptor: (Ljdk/internal/org/jline/utils/AttributedString;Ljdk/internal/org/jline/utils/AttributedString;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=8, locals=9, args_size=2
        start local 0 // jdk.internal.org.jline.utils.AttributedString text1
        start local 1 // jdk.internal.org.jline.utils.AttributedString text2
         0: .line 77
            aload 0 /* text1 */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.length:()I
            istore 2 /* l1 */
        start local 2 // int l1
         1: .line 78
            aload 1 /* text2 */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.length:()I
            istore 3 /* l2 */
        start local 3 // int l2
         2: .line 79
            iload 2 /* l1 */
            iload 3 /* l2 */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* n */
        start local 4 // int n
         3: .line 80
            iconst_0
            istore 5 /* commonStart */
        start local 5 // int commonStart
         4: .line 84
            iconst_m1
            istore 6 /* startHiddenRange */
        start local 6 // int startHiddenRange
         5: .line 85
            goto 12
         6: .line 88
      StackMap locals: jdk.internal.org.jline.utils.AttributedString jdk.internal.org.jline.utils.AttributedString int int int int int
      StackMap stack:
            aload 0 /* text1 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.isHidden:(I)Z
            ifeq 10
         7: .line 89
            iload 6 /* startHiddenRange */
            ifge 11
         8: .line 90
            iload 5 /* commonStart */
            istore 6 /* startHiddenRange */
         9: .line 91
            goto 11
        10: .line 92
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 6 /* startHiddenRange */
        11: .line 93
      StackMap locals:
      StackMap stack:
            iinc 5 /* commonStart */ 1
        12: .line 85
      StackMap locals:
      StackMap stack:
            iload 5 /* commonStart */
            iload 4 /* n */
            if_icmpge 15
        13: .line 86
            aload 0 /* text1 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.charAt:(I)C
            aload 1 /* text2 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.charAt:(I)C
            if_icmpne 15
        14: .line 87
            aload 0 /* text1 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.styleAt:(I)Ljdk/internal/org/jline/utils/AttributedStyle;
            aload 1 /* text2 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.styleAt:(I)Ljdk/internal/org/jline/utils/AttributedStyle;
            invokevirtual jdk.internal.org.jline.utils.AttributedStyle.equals:(Ljava/lang/Object;)Z
            ifne 6
        15: .line 95
      StackMap locals:
      StackMap stack:
            iload 6 /* startHiddenRange */
            iflt 19
        16: .line 96
            iload 2 /* l1 */
            iload 5 /* commonStart */
            if_icmple 17
            aload 0 /* text1 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.isHidden:(I)Z
            ifne 18
        17: .line 97
      StackMap locals:
      StackMap stack:
            iload 3 /* l2 */
            iload 5 /* commonStart */
            if_icmple 19
            aload 1 /* text2 */
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.isHidden:(I)Z
            ifeq 19
        18: .line 98
      StackMap locals:
      StackMap stack:
            iload 6 /* startHiddenRange */
            istore 5 /* commonStart */
        19: .line 100
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 6 /* startHiddenRange */
        20: .line 101
            iconst_0
            istore 7 /* commonEnd */
        start local 7 // int commonEnd
        21: .line 102
            goto 28
        22: .line 105
      StackMap locals: int
      StackMap stack:
            aload 0 /* text1 */
            iload 2 /* l1 */
            iload 7 /* commonEnd */
            isub
            iconst_1
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.isHidden:(I)Z
            ifeq 26
        23: .line 106
            iload 6 /* startHiddenRange */
            ifge 27
        24: .line 107
            iload 7 /* commonEnd */
            istore 6 /* startHiddenRange */
        25: .line 108
            goto 27
        26: .line 109
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 6 /* startHiddenRange */
        27: .line 110
      StackMap locals:
      StackMap stack:
            iinc 7 /* commonEnd */ 1
        28: .line 102
      StackMap locals:
      StackMap stack:
            iload 7 /* commonEnd */
            iload 4 /* n */
            iload 5 /* commonStart */
            isub
            if_icmpge 31
        29: .line 103
            aload 0 /* text1 */
            iload 2 /* l1 */
            iload 7 /* commonEnd */
            isub
            iconst_1
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.charAt:(I)C
            aload 1 /* text2 */
            iload 3 /* l2 */
            iload 7 /* commonEnd */
            isub
            iconst_1
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.charAt:(I)C
            if_icmpne 31
        30: .line 104
            aload 0 /* text1 */
            iload 2 /* l1 */
            iload 7 /* commonEnd */
            isub
            iconst_1
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.styleAt:(I)Ljdk/internal/org/jline/utils/AttributedStyle;
            aload 1 /* text2 */
            iload 3 /* l2 */
            iload 7 /* commonEnd */
            isub
            iconst_1
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.styleAt:(I)Ljdk/internal/org/jline/utils/AttributedStyle;
            invokevirtual jdk.internal.org.jline.utils.AttributedStyle.equals:(Ljava/lang/Object;)Z
            ifne 22
        31: .line 112
      StackMap locals:
      StackMap stack:
            iload 6 /* startHiddenRange */
            iflt 33
        32: .line 113
            iload 6 /* startHiddenRange */
            istore 7 /* commonEnd */
        33: .line 114
      StackMap locals:
      StackMap stack:
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            astore 8 /* diffs */
        start local 8 // java.util.LinkedList diffs
        34: .line 115
            iload 5 /* commonStart */
            ifle 38
        35: .line 116
            aload 8 /* diffs */
            new jdk.internal.org.jline.utils.DiffHelper$Diff
            dup
            getstatic jdk.internal.org.jline.utils.DiffHelper$Operation.EQUAL:Ljdk/internal/org/jline/utils/DiffHelper$Operation;
        36: .line 117
            aload 0 /* text1 */
            iconst_0
            iload 5 /* commonStart */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.subSequence:(II)Ljdk/internal/org/jline/utils/AttributedString;
            invokespecial jdk.internal.org.jline.utils.DiffHelper$Diff.<init>:(Ljdk/internal/org/jline/utils/DiffHelper$Operation;Ljdk/internal/org/jline/utils/AttributedString;)V
        37: .line 116
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        38: .line 119
      StackMap locals: java.util.LinkedList
      StackMap stack:
            iload 3 /* l2 */
            iload 5 /* commonStart */
            iload 7 /* commonEnd */
            iadd
            if_icmple 42
        39: .line 120
            aload 8 /* diffs */
            new jdk.internal.org.jline.utils.DiffHelper$Diff
            dup
            getstatic jdk.internal.org.jline.utils.DiffHelper$Operation.INSERT:Ljdk/internal/org/jline/utils/DiffHelper$Operation;
        40: .line 121
            aload 1 /* text2 */
            iload 5 /* commonStart */
            iload 3 /* l2 */
            iload 7 /* commonEnd */
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.subSequence:(II)Ljdk/internal/org/jline/utils/AttributedString;
            invokespecial jdk.internal.org.jline.utils.DiffHelper$Diff.<init>:(Ljdk/internal/org/jline/utils/DiffHelper$Operation;Ljdk/internal/org/jline/utils/AttributedString;)V
        41: .line 120
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        42: .line 123
      StackMap locals:
      StackMap stack:
            iload 2 /* l1 */
            iload 5 /* commonStart */
            iload 7 /* commonEnd */
            iadd
            if_icmple 46
        43: .line 124
            aload 8 /* diffs */
            new jdk.internal.org.jline.utils.DiffHelper$Diff
            dup
            getstatic jdk.internal.org.jline.utils.DiffHelper$Operation.DELETE:Ljdk/internal/org/jline/utils/DiffHelper$Operation;
        44: .line 125
            aload 0 /* text1 */
            iload 5 /* commonStart */
            iload 2 /* l1 */
            iload 7 /* commonEnd */
            isub
            invokevirtual jdk.internal.org.jline.utils.AttributedString.subSequence:(II)Ljdk/internal/org/jline/utils/AttributedString;
            invokespecial jdk.internal.org.jline.utils.DiffHelper$Diff.<init>:(Ljdk/internal/org/jline/utils/DiffHelper$Operation;Ljdk/internal/org/jline/utils/AttributedString;)V
        45: .line 124
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        46: .line 127
      StackMap locals:
      StackMap stack:
            iload 7 /* commonEnd */
            ifle 50
        47: .line 128
            aload 8 /* diffs */
            new jdk.internal.org.jline.utils.DiffHelper$Diff
            dup
            getstatic jdk.internal.org.jline.utils.DiffHelper$Operation.EQUAL:Ljdk/internal/org/jline/utils/DiffHelper$Operation;
        48: .line 129
            aload 0 /* text1 */
            iload 2 /* l1 */
            iload 7 /* commonEnd */
            isub
            iload 2 /* l1 */
            invokevirtual jdk.internal.org.jline.utils.AttributedString.subSequence:(II)Ljdk/internal/org/jline/utils/AttributedString;
            invokespecial jdk.internal.org.jline.utils.DiffHelper$Diff.<init>:(Ljdk/internal/org/jline/utils/DiffHelper$Operation;Ljdk/internal/org/jline/utils/AttributedString;)V
        49: .line 128
            invokevirtual java.util.LinkedList.add:(Ljava/lang/Object;)Z
            pop
        50: .line 131
      StackMap locals:
      StackMap stack:
            aload 8 /* diffs */
            areturn
        end local 8 // java.util.LinkedList diffs
        end local 7 // int commonEnd
        end local 6 // int startHiddenRange
        end local 5 // int commonStart
        end local 4 // int n
        end local 3 // int l2
        end local 2 // int l1
        end local 1 // jdk.internal.org.jline.utils.AttributedString text2
        end local 0 // jdk.internal.org.jline.utils.AttributedString text1
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   51     0             text1  Ljdk/internal/org/jline/utils/AttributedString;
            0   51     1             text2  Ljdk/internal/org/jline/utils/AttributedString;
            1   51     2                l1  I
            2   51     3                l2  I
            3   51     4                 n  I
            4   51     5       commonStart  I
            5   51     6  startHiddenRange  I
           21   51     7         commonEnd  I
           34   51     8             diffs  Ljava/util/LinkedList<Ljdk/internal/org/jline/utils/DiffHelper$Diff;>;
    Signature: (Ljdk/internal/org/jline/utils/AttributedString;Ljdk/internal/org/jline/utils/AttributedString;)Ljava/util/List<Ljdk/internal/org/jline/utils/DiffHelper$Diff;>;
    MethodParameters:
       Name  Flags
      text1  
      text2  
}
SourceFile: "DiffHelper.java"
NestMembers:
  jdk.internal.org.jline.utils.DiffHelper$Diff  jdk.internal.org.jline.utils.DiffHelper$Operation
InnerClasses:
  public Diff = jdk.internal.org.jline.utils.DiffHelper$Diff of jdk.internal.org.jline.utils.DiffHelper
  public final Operation = jdk.internal.org.jline.utils.DiffHelper$Operation of jdk.internal.org.jline.utils.DiffHelper