public abstract class jdk.internal.jline.extra.EditingHistory implements jdk.internal.jline.console.history.History
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.internal.jline.extra.EditingHistory
  super_class: java.lang.Object
{
  private final jdk.internal.jline.console.history.History fullHistory;
    descriptor: Ljdk/internal/jline/console/history/History;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private jdk.internal.jline.console.history.History currentDelegate;
    descriptor: Ljdk/internal/jline/console/history/History;
    flags: (0x0002) ACC_PRIVATE

  private static final java.lang.String CTRL_UP;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\u001B[1;5A"

  private static final java.lang.String CTRL_DOWN;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\u001B[1;5B"

  protected void <init>(jdk.internal.jline.console.ConsoleReader, java.lang.Iterable<? extends java.lang.String>);
    descriptor: (Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/Iterable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // jdk.internal.jline.console.ConsoleReader in
        start local 2 // java.lang.Iterable originalHistory
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            new jdk.internal.jline.console.history.MemoryHistory
            dup
            invokespecial jdk.internal.jline.console.history.MemoryHistory.<init>:()V
            astore 3 /* fullHistory */
        start local 3 // jdk.internal.jline.console.history.MemoryHistory fullHistory
         2: .line 52
            aload 3 /* fullHistory */
            iconst_0
            invokevirtual jdk.internal.jline.console.history.MemoryHistory.setIgnoreDuplicates:(Z)V
         3: .line 53
            aload 0 /* this */
            aload 3 /* fullHistory */
            putfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
         4: .line 54
            aload 0 /* this */
            aload 3 /* fullHistory */
            putfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
         5: .line 55
            aload 0 /* this */
            aload 1 /* in */
            ldc "\u001B[1;5A"
         6: .line 56
            aload 0 /* this */
            aload 1 /* in */
            invokedynamic run(Ljdk/internal/jline/extra/EditingHistory;Ljdk/internal/jline/console/ConsoleReader;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  jdk/internal/jline/extra/EditingHistory.lambda$0(Ljdk/internal/jline/console/ConsoleReader;)V (7)
                  ()V
         7: .line 55
            invokevirtual jdk.internal.jline.extra.EditingHistory.bind:(Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 57
            aload 0 /* this */
            aload 1 /* in */
            ldc "\u001B[1;5B"
         9: .line 58
            aload 0 /* this */
            aload 1 /* in */
            invokedynamic run(Ljdk/internal/jline/extra/EditingHistory;Ljdk/internal/jline/console/ConsoleReader;)Ljava/lang/Runnable;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()V
                  jdk/internal/jline/extra/EditingHistory.lambda$2(Ljdk/internal/jline/console/ConsoleReader;)V (7)
                  ()V
        10: .line 57
            invokevirtual jdk.internal.jline.extra.EditingHistory.bind:(Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 59
            aload 2 /* originalHistory */
            ifnull 13
        12: .line 60
            aload 0 /* this */
            aload 2 /* originalHistory */
            invokevirtual jdk.internal.jline.extra.EditingHistory.load:(Ljava/lang/Iterable;)V
        13: .line 62
      StackMap locals: jdk.internal.jline.extra.EditingHistory jdk.internal.jline.console.ConsoleReader java.lang.Iterable jdk.internal.jline.console.history.MemoryHistory
      StackMap stack:
            return
        end local 3 // jdk.internal.jline.console.history.MemoryHistory fullHistory
        end local 2 // java.lang.Iterable originalHistory
        end local 1 // jdk.internal.jline.console.ConsoleReader in
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   14     0             this  Ljdk/internal/jline/extra/EditingHistory;
            0   14     1               in  Ljdk/internal/jline/console/ConsoleReader;
            0   14     2  originalHistory  Ljava/lang/Iterable<+Ljava/lang/String;>;
            2   14     3      fullHistory  Ljdk/internal/jline/console/history/MemoryHistory;
    Signature: (Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/Iterable<+Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      in               
      originalHistory  

  private void moveHistoryToSnippet(jdk.internal.jline.console.ConsoleReader, java.util.function.Supplier<java.lang.Boolean>);
    descriptor: (Ljdk/internal/jline/console/ConsoleReader;Ljava/util/function/Supplier;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // jdk.internal.jline.console.ConsoleReader in
        start local 2 // java.util.function.Supplier action
         0: .line 65
            aload 2 /* action */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifne 5
         1: .line 67
            aload 1 /* in */
            invokevirtual jdk.internal.jline.console.ConsoleReader.beep:()V
         2: .line 68
            goto 12
      StackMap locals:
      StackMap stack: java.io.IOException
         3: astore 3 /* ex */
        start local 3 // java.io.IOException ex
         4: .line 69
            new java.lang.IllegalStateException
            dup
            aload 3 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.io.IOException ex
         5: .line 77
      StackMap locals:
      StackMap stack:
            ldc Ljdk/internal/jline/console/ConsoleReader;
            ldc "setBuffer"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Ljava/lang/String;
            aastore
            invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 3 /* setBuffer */
        start local 3 // java.lang.reflect.Method setBuffer
         6: .line 79
            aload 3 /* setBuffer */
            iconst_1
            invokevirtual java.lang.reflect.Method.setAccessible:(Z)V
         7: .line 80
            aload 3 /* setBuffer */
            aload 1 /* in */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* in */
            invokevirtual jdk.internal.jline.console.ConsoleReader.getHistory:()Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.current:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 81
            aload 1 /* in */
            invokevirtual jdk.internal.jline.console.ConsoleReader.flush:()V
        end local 3 // java.lang.reflect.Method setBuffer
         9: .line 82
            goto 12
      StackMap locals:
      StackMap stack: java.lang.Exception
        10: astore 3 /* ex */
        start local 3 // java.lang.Exception ex
        11: .line 83
            new java.lang.IllegalStateException
            dup
            aload 3 /* ex */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Exception ex
        12: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.function.Supplier action
        end local 1 // jdk.internal.jline.console.ConsoleReader in
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Ljdk/internal/jline/extra/EditingHistory;
            0   13     1         in  Ljdk/internal/jline/console/ConsoleReader;
            0   13     2     action  Ljava/util/function/Supplier<Ljava/lang/Boolean;>;
            4    5     3         ex  Ljava/io/IOException;
            6    9     3  setBuffer  Ljava/lang/reflect/Method;
           11   12     3         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException
           5     9      10  Class java.lang.ReflectiveOperationException
           5     9      10  Class java.io.IOException
    Signature: (Ljdk/internal/jline/console/ConsoleReader;Ljava/util/function/Supplier<Ljava/lang/Boolean;>;)V
    MethodParameters:
        Name  Flags
      in      
      action  

  private void bind(jdk.internal.jline.console.ConsoleReader, java.lang.String, java.lang.Object);
    descriptor: (Ljdk/internal/jline/console/ConsoleReader;Ljava/lang/String;Ljava/lang/Object;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // jdk.internal.jline.console.ConsoleReader in
        start local 2 // java.lang.String shortcut
        start local 3 // java.lang.Object action
         0: .line 89
            aload 1 /* in */
            invokevirtual jdk.internal.jline.console.ConsoleReader.getKeys:()Ljdk/internal/jline/console/KeyMap;
            astore 4 /* km */
        start local 4 // jdk.internal.jline.console.KeyMap km
         1: .line 90
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         2: goto 9
         3: .line 91
      StackMap locals: jdk.internal.jline.console.KeyMap int
      StackMap stack:
            aload 4 /* km */
            aload 2 /* shortcut */
            iload 5 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            invokevirtual jdk.internal.jline.console.KeyMap.getBound:(Ljava/lang/CharSequence;)Ljava/lang/Object;
            astore 6 /* value */
        start local 6 // java.lang.Object value
         4: .line 92
            aload 6 /* value */
            instanceof jdk.internal.jline.console.KeyMap
            ifeq 7
         5: .line 93
            aload 6 /* value */
            checkcast jdk.internal.jline.console.KeyMap
            astore 4 /* km */
         6: .line 94
            goto 8
         7: .line 95
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4 /* km */
            aload 2 /* shortcut */
            iload 5 /* i */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            aload 3 /* action */
            invokevirtual jdk.internal.jline.console.KeyMap.bind:(Ljava/lang/CharSequence;Ljava/lang/Object;)V
        end local 6 // java.lang.Object value
         8: .line 90
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 2 /* shortcut */
            invokevirtual java.lang.String.length:()I
            if_icmplt 3
        end local 5 // int i
        10: .line 98
            return
        end local 4 // jdk.internal.jline.console.KeyMap km
        end local 3 // java.lang.Object action
        end local 2 // java.lang.String shortcut
        end local 1 // jdk.internal.jline.console.ConsoleReader in
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljdk/internal/jline/extra/EditingHistory;
            0   11     1        in  Ljdk/internal/jline/console/ConsoleReader;
            0   11     2  shortcut  Ljava/lang/String;
            0   11     3    action  Ljava/lang/Object;
            1   11     4        km  Ljdk/internal/jline/console/KeyMap;
            2   10     5         i  I
            4    8     6     value  Ljava/lang/Object;
    MethodParameters:
          Name  Flags
      in        
      shortcut  
      action    

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 105
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.size:()I
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 110
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.isEmpty:()Z
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public int index();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 115
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.index:()I
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 120
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 121
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.clear:()V
         3: .line 123
            return
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public java.lang.CharSequence get(int);
    descriptor: (I)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // int index
         0: .line 127
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            iload 1 /* index */
            invokeinterface jdk.internal.jline.console.history.History.get:(I)Ljava/lang/CharSequence;
            areturn
        end local 1 // int index
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/internal/jline/extra/EditingHistory;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public void add(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // java.lang.CharSequence line
         0: .line 132
            aconst_null
            astore 2 /* currentLine */
        start local 2 // jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine currentLine
         1: .line 133
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.index:()I
            istore 3 /* origIndex */
        start local 3 // int origIndex
         2: .line 136
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.moveToEnd:()V
         3: .line 137
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.index:()I
            istore 4 /* fullSize */
        start local 4 // int fullSize
         4: .line 138
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpne 19
         5: .line 139
            iload 3 /* origIndex */
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.index:()I
            if_icmpge 19
         6: .line 140
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.iterator:()Ljava/util/Iterator;
            astore 6
            goto 18
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.CharSequence jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.jline.console.history.History$Entry
            astore 5 /* entry */
        start local 5 // jdk.internal.jline.console.history.History$Entry entry
         8: .line 141
            aload 5 /* entry */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            instanceof jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            ifne 10
         9: .line 142
            goto 18
        10: .line 143
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.CharSequence jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int jdk.internal.jline.console.history.History$Entry java.util.Iterator
      StackMap stack:
            aload 5 /* entry */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            checkcast jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            getfield jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.span:[I
            astore 7 /* cluster */
        start local 7 // int[] cluster
        11: .line 144
            aload 7 /* cluster */
            iconst_0
            iaload
            iload 3 /* origIndex */
            if_icmpne 18
            aload 7 /* cluster */
            iconst_1
            iaload
            aload 7 /* cluster */
            iconst_0
            iaload
            if_icmple 18
        12: .line 145
            aload 0 /* this */
            new jdk.internal.jline.console.history.MemoryHistory
            dup
            invokespecial jdk.internal.jline.console.history.MemoryHistory.<init>:()V
            putfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
        13: .line 146
            aload 7 /* cluster */
            iconst_0
            iaload
            istore 8 /* i */
        start local 8 // int i
        14: goto 17
        15: .line 147
      StackMap locals: int[] int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            iload 8 /* i */
            invokeinterface jdk.internal.jline.console.history.History.get:(I)Ljava/lang/CharSequence;
            invokeinterface jdk.internal.jline.console.history.History.add:(Ljava/lang/CharSequence;)V
        16: .line 146
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 8 /* i */
            aload 7 /* cluster */
            iconst_1
            iaload
            if_icmple 15
        end local 8 // int i
        end local 7 // int[] cluster
        end local 5 // jdk.internal.jline.console.history.History$Entry entry
        18: .line 140
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.CharSequence jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        19: .line 153
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.CharSequence jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.moveToEnd:()V
        20: .line 154
            goto 25
        21: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.current:()Ljava/lang/CharSequence;
            astore 5 /* c */
        start local 5 // java.lang.CharSequence c
        22: .line 156
            aload 5 /* c */
            instanceof jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            ifeq 25
        23: .line 157
            aload 5 /* c */
            checkcast jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            astore 2 /* currentLine */
        24: .line 158
            goto 30
        end local 5 // java.lang.CharSequence c
        25: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.previous:()Z
            ifne 21
        26: .line 161
            goto 30
        end local 4 // int fullSize
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.CharSequence jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int
      StackMap stack: java.lang.Throwable
        27: astore 9
        28: .line 162
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            iload 3 /* origIndex */
            invokeinterface jdk.internal.jline.console.history.History.moveTo:(I)Z
            pop
        29: .line 163
            aload 9
            athrow
        start local 4 // int fullSize
        30: .line 162
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            iload 3 /* origIndex */
            invokeinterface jdk.internal.jline.console.history.History.moveTo:(I)Z
            pop
        31: .line 164
            aload 2 /* currentLine */
            ifnull 32
            aload 2 /* currentLine */
            getfield jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.span:[I
            iconst_1
            iaload
            iconst_m1
            if_icmpeq 33
        32: .line 165
      StackMap locals:
      StackMap stack:
            new jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            dup
            aload 0 /* this */
            aload 1 /* line */
            iload 4 /* fullSize */
            invokespecial jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.<init>:(Ljdk/internal/jline/extra/EditingHistory;Ljava/lang/CharSequence;I)V
            dup
            astore 2 /* currentLine */
            astore 1 /* line */
        33: .line 167
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 5 /* complete */
        start local 5 // java.lang.StringBuilder complete
        34: .line 168
            aload 2 /* currentLine */
            getfield jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.span:[I
            iconst_0
            iaload
            istore 6 /* i */
        start local 6 // int i
        35: goto 38
        36: .line 169
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 5 /* complete */
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            iload 6 /* i */
            invokeinterface jdk.internal.jline.console.history.History.get:(I)Ljava/lang/CharSequence;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        37: .line 168
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        38: iload 6 /* i */
            iload 4 /* fullSize */
            if_icmplt 36
        end local 6 // int i
        39: .line 171
            aload 5 /* complete */
            aload 1 /* line */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
            pop
        40: .line 172
            aload 0 /* this */
            aload 5 /* complete */
            invokevirtual jdk.internal.jline.extra.EditingHistory.isComplete:(Ljava/lang/CharSequence;)Z
            ifeq 43
        41: .line 173
            aload 2 /* currentLine */
            getfield jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.span:[I
            iconst_1
            iload 4 /* fullSize */
            iastore
        42: .line 174
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            putfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
        43: .line 176
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            aload 1 /* line */
            invokeinterface jdk.internal.jline.console.history.History.add:(Ljava/lang/CharSequence;)V
        44: .line 177
            return
        end local 5 // java.lang.StringBuilder complete
        end local 4 // int fullSize
        end local 3 // int origIndex
        end local 2 // jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine currentLine
        end local 1 // java.lang.CharSequence line
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   45     0         this  Ljdk/internal/jline/extra/EditingHistory;
            0   45     1         line  Ljava/lang/CharSequence;
            1   45     2  currentLine  Ljdk/internal/jline/extra/EditingHistory$NarrowingHistoryLine;
            2   45     3    origIndex  I
            4   27     4     fullSize  I
           30   45     4     fullSize  I
            8   18     5        entry  Ljdk/internal/jline/console/history/History$Entry;
           11   18     7      cluster  [I
           14   18     8            i  I
           22   25     5            c  Ljava/lang/CharSequence;
           34   45     5     complete  Ljava/lang/StringBuilder;
           35   39     6            i  I
      Exception table:
        from    to  target  type
           2    27      27  any
    MethodParameters:
      Name  Flags
      line  

  protected abstract boolean isComplete(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      input  

  public void set(int, java.lang.CharSequence);
    descriptor: (ILjava/lang/CharSequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // int index
        start local 2 // java.lang.CharSequence item
         0: .line 183
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 184
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 185
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            iload 1 /* index */
            aload 2 /* item */
            invokeinterface jdk.internal.jline.console.history.History.set:(ILjava/lang/CharSequence;)V
         3: .line 186
            return
        end local 2 // java.lang.CharSequence item
        end local 1 // int index
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljdk/internal/jline/extra/EditingHistory;
            0    4     1  index  I
            0    4     2   item  Ljava/lang/CharSequence;
    MethodParameters:
       Name  Flags
      index  
      item   

  public java.lang.CharSequence remove(int);
    descriptor: (I)Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // int i
         0: .line 190
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 191
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            iload 1 /* i */
            invokeinterface jdk.internal.jline.console.history.History.remove:(I)Ljava/lang/CharSequence;
            areturn
        end local 1 // int i
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/extra/EditingHistory;
            0    3     1     i  I
    MethodParameters:
      Name  Flags
      i     

  public java.lang.CharSequence removeFirst();
    descriptor: ()Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 197
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 198
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.removeFirst:()Ljava/lang/CharSequence;
            areturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public java.lang.CharSequence removeLast();
    descriptor: ()Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 204
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 205
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 206
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.removeLast:()Ljava/lang/CharSequence;
            areturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public void replace(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // java.lang.CharSequence item
         0: .line 211
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            if_acmpeq 2
         1: .line 212
            new java.lang.IllegalStateException
            dup
            ldc "narrowed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            aload 1 /* item */
            invokeinterface jdk.internal.jline.console.history.History.replace:(Ljava/lang/CharSequence;)V
         3: .line 214
            return
        end local 1 // java.lang.CharSequence item
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/internal/jline/extra/EditingHistory;
            0    4     1  item  Ljava/lang/CharSequence;
    MethodParameters:
      Name  Flags
      item  

  public java.util.ListIterator<jdk.internal.jline.console.history.History$Entry> entries(int);
    descriptor: (I)Ljava/util/ListIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // int index
         0: .line 218
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            iload 1 /* index */
            invokeinterface jdk.internal.jline.console.history.History.entries:(I)Ljava/util/ListIterator;
            areturn
        end local 1 // int index
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/internal/jline/extra/EditingHistory;
            0    1     1  index  I
    Signature: (I)Ljava/util/ListIterator<Ljdk/internal/jline/console/history/History$Entry;>;
    MethodParameters:
       Name  Flags
      index  

  public java.util.ListIterator<jdk.internal.jline.console.history.History$Entry> entries();
    descriptor: ()Ljava/util/ListIterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 223
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.entries:()Ljava/util/ListIterator;
            areturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;
    Signature: ()Ljava/util/ListIterator<Ljdk/internal/jline/console/history/History$Entry;>;

  public java.util.Iterator<jdk.internal.jline.console.history.History$Entry> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 228
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;
    Signature: ()Ljava/util/Iterator<Ljdk/internal/jline/console/history/History$Entry;>;

  public java.lang.CharSequence current();
    descriptor: ()Ljava/lang/CharSequence;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 233
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.current:()Ljava/lang/CharSequence;
            areturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean previous();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 238
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.previous:()Z
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean next();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 243
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.next:()Z
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean moveToFirst();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 248
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.moveToFirst:()Z
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean moveToLast();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 253
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.moveToLast:()Z
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean moveTo(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // int index
         0: .line 258
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            iload 1 /* index */
            invokeinterface jdk.internal.jline.console.history.History.moveTo:(I)Z
            ireturn
        end local 1 // int index
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Ljdk/internal/jline/extra/EditingHistory;
            0    1     1  index  I
    MethodParameters:
       Name  Flags
      index  

  public void moveToEnd();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 263
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.currentDelegate:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.moveToEnd:()V
         1: .line 264
            return
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean previousSnippet();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 267
            goto 3
         1: .line 268
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.internal.jline.extra.EditingHistory.current:()Ljava/lang/CharSequence;
            instanceof jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            ifeq 3
         2: .line 269
            iconst_1
            ireturn
         3: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.internal.jline.extra.EditingHistory.previous:()Z
            ifne 1
         4: .line 273
            iconst_0
            ireturn
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/jline/extra/EditingHistory;

  public boolean nextSnippet();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 277
            iconst_0
            istore 1 /* success */
        start local 1 // boolean success
         1: .line 279
            goto 5
         2: .line 280
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 1 /* success */
         3: .line 282
            aload 0 /* this */
            invokevirtual jdk.internal.jline.extra.EditingHistory.current:()Ljava/lang/CharSequence;
            instanceof jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            ifeq 5
         4: .line 283
            iconst_1
            ireturn
         5: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.internal.jline.extra.EditingHistory.next:()Z
            ifne 2
         6: .line 287
            iload 1 /* success */
            ireturn
        end local 1 // boolean success
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Ljdk/internal/jline/extra/EditingHistory;
            1    7     1  success  Z

  public final void load(java.lang.Iterable<? extends java.lang.String>);
    descriptor: (Ljava/lang/Iterable;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=10, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // java.lang.Iterable originalHistory
         0: .line 291
            aconst_null
            astore 2 /* currentHistoryLine */
        start local 2 // jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine currentHistoryLine
         1: .line 292
            iconst_1
            istore 3 /* start */
        start local 3 // boolean start
         2: .line 293
            iconst_0
            istore 4 /* currentLine */
        start local 4 // int currentLine
         3: .line 294
            aload 1 /* originalHistory */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.Iterable jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int top java.util.Iterator
      StackMap stack:
         4: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 5 /* historyItem */
        start local 5 // java.lang.String historyItem
         5: .line 295
            new java.lang.StringBuilder
            dup
            aload 5 /* historyItem */
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 7 /* line */
        start local 7 // java.lang.StringBuilder line
         6: .line 296
            aload 0 /* this */
            aload 7 /* line */
            invokevirtual jdk.internal.jline.extra.EditingHistory.countTrailintBackslashes:(Ljava/lang/CharSequence;)I
            istore 8 /* trailingBackSlashes */
        start local 8 // int trailingBackSlashes
         7: .line 297
            iload 8 /* trailingBackSlashes */
            iconst_2
            irem
            ifeq 8
            iconst_1
            goto 9
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.Iterable jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int java.lang.String java.util.Iterator java.lang.StringBuilder int
      StackMap stack:
         8: iconst_0
      StackMap locals:
      StackMap stack: int
         9: istore 9 /* continuation */
        start local 9 // boolean continuation
        10: .line 298
            aload 7 /* line */
            aload 7 /* line */
            invokevirtual java.lang.StringBuilder.length:()I
            iload 8 /* trailingBackSlashes */
            iconst_2
            idiv
            isub
            iload 9 /* continuation */
            ifeq 11
            iconst_1
            goto 12
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.Iterable jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int java.lang.String java.util.Iterator java.lang.StringBuilder int int
      StackMap stack: java.lang.StringBuilder int
        11: iconst_0
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.Iterable jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int java.lang.String java.util.Iterator java.lang.StringBuilder int int
      StackMap stack: java.lang.StringBuilder int int
        12: isub
            aload 7 /* line */
            invokevirtual java.lang.StringBuilder.length:()I
            invokevirtual java.lang.StringBuilder.delete:(II)Ljava/lang/StringBuilder;
            pop
        13: .line 299
            iload 3 /* start */
            ifeq 16
        14: .line 305
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            new jdk.internal.jline.extra.EditingHistory$1PersistentNarrowingHistoryLine
            dup
            aload 0 /* this */
            aload 7 /* line */
            iload 4 /* currentLine */
            invokespecial jdk.internal.jline.extra.EditingHistory$1PersistentNarrowingHistoryLine.<init>:(Ljdk/internal/jline/extra/EditingHistory;Ljava/lang/CharSequence;I)V
            dup
            astore 2 /* currentHistoryLine */
            invokeinterface jdk.internal.jline.console.history.History.add:(Ljava/lang/CharSequence;)V
        15: .line 306
            goto 17
        16: .line 325
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            new jdk.internal.jline.extra.EditingHistory$1PersistentLine
            dup
            aload 0 /* this */
            aload 7 /* line */
            invokespecial jdk.internal.jline.extra.EditingHistory$1PersistentLine.<init>:(Ljdk/internal/jline/extra/EditingHistory;Ljava/lang/CharSequence;)V
            invokeinterface jdk.internal.jline.console.history.History.add:(Ljava/lang/CharSequence;)V
        17: .line 327
      StackMap locals:
      StackMap stack:
            iload 9 /* continuation */
            ifeq 18
            iconst_0
            goto 19
      StackMap locals:
      StackMap stack:
        18: iconst_1
      StackMap locals:
      StackMap stack: int
        19: istore 3 /* start */
        20: .line 328
            aload 2 /* currentHistoryLine */
            getfield jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine.span:[I
            iconst_1
            iload 4 /* currentLine */
            iastore
        21: .line 329
            iinc 4 /* currentLine */ 1
        end local 9 // boolean continuation
        end local 8 // int trailingBackSlashes
        end local 7 // java.lang.StringBuilder line
        end local 5 // java.lang.String historyItem
        22: .line 294
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.Iterable jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine int int top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        23: .line 331
            return
        end local 4 // int currentLine
        end local 3 // boolean start
        end local 2 // jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine currentHistoryLine
        end local 1 // java.lang.Iterable originalHistory
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   24     0                 this  Ljdk/internal/jline/extra/EditingHistory;
            0   24     1      originalHistory  Ljava/lang/Iterable<+Ljava/lang/String;>;
            1   24     2   currentHistoryLine  Ljdk/internal/jline/extra/EditingHistory$NarrowingHistoryLine;
            2   24     3                start  Z
            3   24     4          currentLine  I
            5   22     5          historyItem  Ljava/lang/String;
            6   22     7                 line  Ljava/lang/StringBuilder;
            7   22     8  trailingBackSlashes  I
           10   22     9         continuation  Z
    Signature: (Ljava/lang/Iterable<+Ljava/lang/String;>;)V
    MethodParameters:
                 Name  Flags
      originalHistory  

  public java.util.Collection<? extends java.lang.String> save();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 334
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.Collection result
         1: .line 335
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.iterator:()Ljava/util/Iterator;
            astore 2 /* entries */
        start local 2 // java.util.Iterator entries
         2: .line 337
            aload 2 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 19
         3: .line 338
            aload 2 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.jline.console.history.History$Entry
            astore 3 /* entry */
        start local 3 // jdk.internal.jline.console.history.History$Entry entry
         4: .line 339
            goto 18
         5: .line 340
      StackMap locals: java.util.Collection java.util.Iterator jdk.internal.jline.console.history.History$Entry
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 3 /* entry */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/CharSequence;)V
            astore 4 /* historyLine */
        start local 4 // java.lang.StringBuilder historyLine
         6: .line 341
            aload 0 /* this */
            aload 4 /* historyLine */
            invokevirtual jdk.internal.jline.extra.EditingHistory.countTrailintBackslashes:(Ljava/lang/CharSequence;)I
            istore 5 /* trailingBackSlashes */
        start local 5 // int trailingBackSlashes
         7: .line 342
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 11
         9: .line 343
      StackMap locals: java.lang.StringBuilder int int
      StackMap stack:
            aload 4 /* historyLine */
            ldc "\\"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 342
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 6 /* i */
            iload 5 /* trailingBackSlashes */
            if_icmplt 9
        end local 6 // int i
        12: .line 345
            aload 2 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 13
            aload 2 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.jline.console.history.History$Entry
            goto 14
      StackMap locals:
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: jdk.internal.jline.console.history.History$Entry
        14: astore 3 /* entry */
        15: .line 346
            aload 3 /* entry */
            ifnull 17
            aload 3 /* entry */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            instanceof jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine
            ifne 17
        16: .line 347
            aload 4 /* historyLine */
            ldc "\\"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            aload 4 /* historyLine */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // int trailingBackSlashes
        end local 4 // java.lang.StringBuilder historyLine
        18: .line 339
      StackMap locals:
      StackMap stack:
            aload 3 /* entry */
            ifnonnull 5
        end local 3 // jdk.internal.jline.console.history.History$Entry entry
        19: .line 353
      StackMap locals:
      StackMap stack:
            aload 1 /* result */
            areturn
        end local 2 // java.util.Iterator entries
        end local 1 // java.util.Collection result
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   20     0                 this  Ljdk/internal/jline/extra/EditingHistory;
            1   20     1               result  Ljava/util/Collection<Ljava/lang/String;>;
            2   20     2              entries  Ljava/util/Iterator<Ljdk/internal/jline/console/history/History$Entry;>;
            4   19     3                entry  Ljdk/internal/jline/console/history/History$Entry;
            6   18     4          historyLine  Ljava/lang/StringBuilder;
            7   18     5  trailingBackSlashes  I
            8   12     6                    i  I
    Signature: ()Ljava/util/Collection<+Ljava/lang/String;>;

  private int countTrailintBackslashes(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // java.lang.CharSequence text
         0: .line 357
            iconst_0
            istore 2 /* count */
        start local 2 // int count
         1: .line 359
            aload 1 /* text */
            invokeinterface java.lang.CharSequence.length:()I
            iconst_1
            isub
            istore 3 /* i */
        start local 3 // int i
         2: goto 6
         3: .line 360
      StackMap locals: int int
      StackMap stack:
            aload 1 /* text */
            iload 3 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            bipush 92
            if_icmpne 7
         4: .line 361
            iinc 2 /* count */ 1
         5: .line 359
            iinc 3 /* i */ -1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            ifge 3
        end local 3 // int i
         7: .line 367
      StackMap locals:
      StackMap stack:
            iload 2 /* count */
            ireturn
        end local 2 // int count
        end local 1 // java.lang.CharSequence text
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Ljdk/internal/jline/extra/EditingHistory;
            0    8     1   text  Ljava/lang/CharSequence;
            1    8     2  count  I
            2    7     3      i  I
    MethodParameters:
      Name  Flags
      text  

  public java.util.List<java.lang.String> currentSessionEntries();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 371
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 373
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast jdk.internal.jline.console.history.History$Entry
            astore 2 /* e */
        start local 2 // jdk.internal.jline.console.history.History$Entry e
         3: .line 374
            aload 2 /* e */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            instanceof jdk.internal.jline.extra.EditingHistory$PersistentEntryMarker
            ifne 5
         4: .line 375
            aload 1 /* result */
            aload 2 /* e */
            invokeinterface jdk.internal.jline.console.history.History$Entry.value:()Ljava/lang/CharSequence;
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // jdk.internal.jline.console.history.History$Entry e
         5: .line 373
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 379
            aload 1 /* result */
            areturn
        end local 1 // java.util.List result
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljdk/internal/jline/extra/EditingHistory;
            1    7     1  result  Ljava/util/List<Ljava/lang/String;>;
            3    5     2       e  Ljdk/internal/jline/console/history/History$Entry;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void fullHistoryReplace(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
        start local 1 // java.lang.String source
         0: .line 383
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            invokeinterface jdk.internal.jline.console.history.History.removeLast:()Ljava/lang/CharSequence;
            pop
         1: .line 384
            aload 1 /* source */
            ldc "\\R"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 5
      StackMap locals: jdk.internal.jline.extra.EditingHistory java.lang.String top int int java.lang.String[]
      StackMap stack:
         2: aload 5
            iload 3
            aaload
            astore 2 /* line */
        start local 2 // java.lang.String line
         3: .line 385
            aload 0 /* this */
            getfield jdk.internal.jline.extra.EditingHistory.fullHistory:Ljdk/internal/jline/console/history/History;
            aload 2 /* line */
            invokeinterface jdk.internal.jline.console.history.History.add:(Ljava/lang/CharSequence;)V
        end local 2 // java.lang.String line
         4: .line 384
            iinc 3 1
      StackMap locals:
      StackMap stack:
         5: iload 3
            iload 4
            if_icmplt 2
         6: .line 387
            return
        end local 1 // java.lang.String source
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljdk/internal/jline/extra/EditingHistory;
            0    7     1  source  Ljava/lang/String;
            3    4     2    line  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      source  

  private void lambda$0(jdk.internal.jline.console.ConsoleReader);
    descriptor: (Ljdk/internal/jline/console/ConsoleReader;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 56
            aload 0 /* this */
            aload 1
            aload 1
            invokevirtual jdk.internal.jline.console.ConsoleReader.getHistory:()Ljdk/internal/jline/console/history/History;
            checkcast jdk.internal.jline.extra.EditingHistory
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Ljdk/internal/jline/extra/EditingHistory;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  jdk/internal/jline/extra/EditingHistory.previousSnippet()Z (5)
                  ()Ljava/lang/Boolean;
            invokevirtual jdk.internal.jline.extra.EditingHistory.moveHistoryToSnippet:(Ljdk/internal/jline/console/ConsoleReader;Ljava/util/function/Supplier;)V
            return
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;

  private void lambda$2(jdk.internal.jline.console.ConsoleReader);
    descriptor: (Ljdk/internal/jline/console/ConsoleReader;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jline.extra.EditingHistory this
         0: .line 58
            aload 0 /* this */
            aload 1
            aload 1
            invokevirtual jdk.internal.jline.console.ConsoleReader.getHistory:()Ljdk/internal/jline/console/history/History;
            checkcast jdk.internal.jline.extra.EditingHistory
            dup
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            pop
            invokedynamic get(Ljdk/internal/jline/extra/EditingHistory;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  jdk/internal/jline/extra/EditingHistory.nextSnippet()Z (5)
                  ()Ljava/lang/Boolean;
            invokevirtual jdk.internal.jline.extra.EditingHistory.moveHistoryToSnippet:(Ljdk/internal/jline/console/ConsoleReader;Ljava/util/function/Supplier;)V
            return
        end local 0 // jdk.internal.jline.extra.EditingHistory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jline/extra/EditingHistory;
}
SourceFile: "EditingHistory.java"
NestMembers:
  jdk.internal.jline.extra.EditingHistory$1PersistentLine  jdk.internal.jline.extra.EditingHistory$1PersistentNarrowingHistoryLine  jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine  jdk.internal.jline.extra.EditingHistory$PersistentEntryMarker
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = jdk.internal.jline.console.history.History$Entry of jdk.internal.jline.console.history.History
  PersistentLine = jdk.internal.jline.extra.EditingHistory$1PersistentLine
  PersistentNarrowingHistoryLine = jdk.internal.jline.extra.EditingHistory$1PersistentNarrowingHistoryLine
  private NarrowingHistoryLine = jdk.internal.jline.extra.EditingHistory$NarrowingHistoryLine of jdk.internal.jline.extra.EditingHistory
  private abstract PersistentEntryMarker = jdk.internal.jline.extra.EditingHistory$PersistentEntryMarker of jdk.internal.jline.extra.EditingHistory