public class picocli.AutoComplete
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: picocli.AutoComplete
  super_class: java.lang.Object
{
  public static final int EXIT_CODE_SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int EXIT_CODE_INVALID_INPUT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int EXIT_CODE_COMMAND_SCRIPT_EXISTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int EXIT_CODE_COMPLETION_SCRIPT_EXISTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int EXIT_CODE_EXECUTION_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final java.lang.String SCRIPT_HEADER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "#!/usr/bin/env bash\n#\n# %1$s Bash Completion\n# =======================\n#\n# Bash completion support for the `%1$s` command,\n# generated by [picocli](http://picocli.info/) version %2$s.\n#\n# Installation\n# ------------\n#\n# 1. Source all completion scripts in your .bash_profile\n#\n#   cd $YOUR_APP_HOME/bin\n#   for f in $(find . -name \"*_completion\"); do line=\". $(pwd)/$f\"; grep \"$line\" ~/.bash_profile || echo \"$line\" >> ~/.bash_profile; done\n#\n# 2. Open a new bash console, and type `%1$s [TAB][TAB]`\n#\n# 1a. Alternatively, if you have [bash-completion](https://github.com/scop/bash-completion) installed:\n#     Place this file in a `bash-completion.d` folder:\n#\n#   * /etc/bash-completion.d\n#   * /usr/local/etc/bash-completion.d\n#   * ~/bash-completion.d\n#\n# Documentation\n# -------------\n# The script is called by bash whenever [TAB] or [TAB][TAB] is pressed after\n# '%1$s (..)'. By reading entered command line parameters,\n# it determines possible bash completions and writes them to the COMPREPLY variable.\n# Bash then completes the user input if only one entry is listed in the variable or\n# shows the options if more than one is listed in COMPREPLY.\n#\n# References\n# ----------\n# [1] http://stackoverflow.com/a/12495480/1440785\n# [2] http://tiswww.case.edu/php/chet/bash/FAQ\n# [3] https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html\n# [4] http://zsh.sourceforge.net/Doc/Release/Options.html#index-COMPLETE_005fALIASES\n# [5] https://stackoverflow.com/questions/17042057/bash-check-element-in-array-for-elements-in-another-array/17042655#17042655\n# [6] https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html#Programmable-Completion\n# [7] https://stackoverflow.com/questions/3249432/can-a-bash-tab-completion-script-be-used-in-zsh/27853970#27853970\n#\n\nif [ -n \"$BASH_VERSION\" ]; then\n  # Enable programmable completion facilities when using bash (see [3])\n  shopt -s progcomp\nelif [ -n \"$ZSH_VERSION\" ]; then\n  # Make alias a distinct command for completion purposes when using zsh (see [4])\n  setopt COMPLETE_ALIASES\n  alias compopt=complete\n\n  # Enable bash completion in zsh (see [7])\n  autoload -U +X compinit && compinit\n  autoload -U +X bashcompinit && bashcompinit\nfi\n\n# CompWordsContainsArray takes an array and then checks\n# if all elements of this array are in the global COMP_WORDS array.\n#\n# Returns zero (no error) if all elements of the array are in the COMP_WORDS array,\n# otherwise returns 1 (error).\nfunction CompWordsContainsArray() {\n  declare -a localArray\n  localArray=(\"$@\")\n  local findme\n  for findme in \"${localArray[@]}\"; do\n    if ElementNotInCompWords \"$findme\"; then return 1; fi\n  done\n  return 0\n}\nfunction ElementNotInCompWords() {\n  local findme=\"$1\"\n  local element\n  for element in \"${COMP_WORDS[@]}\"; do\n    if [[ \"$findme\" = \"$element\" ]]; then return 1; fi\n  done\n  return 0\n}\n\n# The `currentPositionalIndex` function calculates the index of the current positional parameter.\n#\n# currentPositionalIndex takes three parameters:\n# the command name,\n# a space-separated string with the names of options that take a parameter, and\n# a space-separated string with the names of boolean options (that don't take any params).\n# When done, this function echos the current positional index to std_out.\n#\n# Example usage:\n# local currIndex=$(currentPositionalIndex \"mysubcommand\" \"$ARG_OPTS\" \"$FLAG_OPTS\")\nfunction currentPositionalIndex() {\n  local commandName=\"$1\"\n  local optionsWithArgs=\"$2\"\n  local booleanOptions=\"$3\"\n  local previousWord\n  local result=0\n\n  for i in $(seq $((COMP_CWORD - 1)) -1 0); do\n    previousWord=${COMP_WORDS[i]}\n    if [ \"${previousWord}\" = \"$commandName\" ]; then\n      break\n    fi\n    if [[ \"${optionsWithArgs}\" =~ ${previousWord} ]]; then\n      ((result-=2)) # Arg option and its value not counted as positional param\n    elif [[ \"${booleanOptions}\" =~ ${previousWord} ]]; then\n      ((result-=1)) # Flag option itself not counted as positional param\n    fi\n    ((result++))\n  done\n  echo \"$result\"\n}\n\n"

  private static final java.lang.String SCRIPT_FOOTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "\n# Define a completion specification (a compspec) for the\n# `%1$s`, `%1$s.sh`, and `%1$s.bash` commands.\n# Uses the bash `complete` builtin (see [6]) to specify that shell function\n# `_complete_%1$s` is responsible for generating possible completions for the\n# current word on the command line.\n# The `-o default` option means that if the function generated no matches, the\n# default Bash completions and the Readline default filename completions are performed.\ncomplete -F _complete_%1$s -o default %1$s %1$s.sh %1$s.bash\n"

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

  public static void main(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // java.lang.String[] args
         0: .line 64
            new picocli.AutoComplete$1
            dup
            invokespecial picocli.AutoComplete$1.<init>:()V
            astore 1 /* errorHandler */
        start local 1 // picocli.CommandLine$IExecutionExceptionHandler errorHandler
         1: .line 71
            new picocli.CommandLine
            dup
            new picocli.AutoComplete$App
            dup
            invokespecial picocli.AutoComplete$App.<init>:()V
            invokespecial picocli.CommandLine.<init>:(Ljava/lang/Object;)V
         2: .line 72
            aload 1 /* errorHandler */
            invokevirtual picocli.CommandLine.setExecutionExceptionHandler:(Lpicocli/CommandLine$IExecutionExceptionHandler;)Lpicocli/CommandLine;
         3: .line 73
            aload 0 /* args */
            invokevirtual picocli.CommandLine.execute:([Ljava/lang/String;)I
         4: .line 71
            istore 2 /* exitCode */
        start local 2 // int exitCode
         5: .line 74
            iload 2 /* exitCode */
            ifne 6
            invokestatic picocli.AutoComplete.exitOnSuccess:()Z
            ifne 7
      StackMap locals: picocli.CommandLine$IExecutionExceptionHandler int
      StackMap stack:
         6: iload 2 /* exitCode */
            ifeq 8
            invokestatic picocli.AutoComplete.exitOnError:()Z
            ifeq 8
         7: .line 75
      StackMap locals:
      StackMap stack:
            iload 2 /* exitCode */
            invokestatic java.lang.System.exit:(I)V
         8: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int exitCode
        end local 1 // picocli.CommandLine$IExecutionExceptionHandler errorHandler
        end local 0 // java.lang.String[] args
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          args  [Ljava/lang/String;
            1    9     1  errorHandler  Lpicocli/CommandLine$IExecutionExceptionHandler;
            5    9     2      exitCode  I
    MethodParameters:
      Name  Flags
      args  

  private static boolean exitOnSuccess();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 80
            ldc "picocli.autocomplete.systemExitOnSuccess"
            invokestatic picocli.AutoComplete.syspropDefinedAndNotFalse:(Ljava/lang/String;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean exitOnError();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 84
            ldc "picocli.autocomplete.systemExitOnError"
            invokestatic picocli.AutoComplete.syspropDefinedAndNotFalse:(Ljava/lang/String;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static boolean syspropDefinedAndNotFalse(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String key
         0: .line 88
            aload 0 /* key */
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* value */
        start local 1 // java.lang.String value
         1: .line 89
            aload 1 /* value */
            ifnull 2
            ldc "false"
            aload 1 /* value */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 2
            iconst_1
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         2: iconst_0
            ireturn
        end local 1 // java.lang.String value
        end local 0 // java.lang.String key
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0    key  Ljava/lang/String;
            1    3     1  value  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   

  private static java.lang.String bashify(java.lang.CharSequence);
    descriptor: (Ljava/lang/CharSequence;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.CharSequence value
         0: .line 249
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 250
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 10
         3: .line 251
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 0 /* value */
            iload 2 /* i */
            invokeinterface java.lang.CharSequence.charAt:(I)C
            istore 3 /* c */
        start local 3 // char c
         4: .line 252
            iload 3 /* c */
            invokestatic java.lang.Character.isLetterOrDigit:(C)Z
            ifne 5
            iload 3 /* c */
            bipush 95
            if_icmpne 7
         5: .line 253
      StackMap locals: int
      StackMap stack:
            aload 1 /* builder */
            iload 3 /* c */
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 254
            goto 9
      StackMap locals:
      StackMap stack:
         7: iload 3 /* c */
            invokestatic java.lang.Character.isSpaceChar:(C)Z
            ifeq 9
         8: .line 255
            aload 1 /* builder */
            bipush 95
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        end local 3 // char c
         9: .line 250
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            aload 0 /* value */
            invokeinterface java.lang.CharSequence.length:()I
            if_icmplt 3
        end local 2 // int i
        11: .line 258
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // java.lang.CharSequence value
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0    value  Ljava/lang/CharSequence;
            1   12     1  builder  Ljava/lang/StringBuilder;
            2   11     2        i  I
            4    9     3        c  C
    MethodParameters:
       Name  Flags
      value  

  private static <T> picocli.AutoComplete$Predicate<T> negate(picocli.AutoComplete$Predicate<T>);
    descriptor: (Lpicocli/AutoComplete$Predicate;)Lpicocli/AutoComplete$Predicate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // picocli.AutoComplete$Predicate original
         0: .line 274
            new picocli.AutoComplete$2
            dup
            aload 0 /* original */
            invokespecial picocli.AutoComplete$2.<init>:(Lpicocli/AutoComplete$Predicate;)V
            areturn
        end local 0 // picocli.AutoComplete$Predicate original
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0  original  Lpicocli/AutoComplete$Predicate<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lpicocli/AutoComplete$Predicate<TT;>;)Lpicocli/AutoComplete$Predicate<TT;>;
    MethodParameters:
          Name  Flags
      original  final

  private static <K, T extends K> java.util.List<T> filter(java.util.List<T>, picocli.AutoComplete$Predicate<K>);
    descriptor: (Ljava/util/List;Lpicocli/AutoComplete$Predicate;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // java.util.List list
        start local 1 // picocli.AutoComplete$Predicate filter
         0: .line 281
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* result */
        start local 2 // java.util.List result
         1: .line 282
            aload 0 /* list */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: java.util.List picocli.AutoComplete$Predicate java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 3 /* t */
        start local 3 // java.lang.Object t
         3: aload 1 /* filter */
            aload 3 /* t */
            invokeinterface picocli.AutoComplete$Predicate.test:(Ljava/lang/Object;)Z
            ifeq 4
            aload 2 /* result */
            aload 3 /* t */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.Object t
      StackMap locals:
      StackMap stack:
         4: aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 283
            aload 2 /* result */
            areturn
        end local 2 // java.util.List result
        end local 1 // picocli.AutoComplete$Predicate filter
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    list  Ljava/util/List<TT;>;
            0    6     1  filter  Lpicocli/AutoComplete$Predicate<TK;>;
            1    6     2  result  Ljava/util/List<TT;>;
            3    4     3       t  TT;
    Signature: <K:Ljava/lang/Object;T:TK;>(Ljava/util/List<TT;>;Lpicocli/AutoComplete$Predicate<TK;>;)Ljava/util/List<TT;>;
    MethodParameters:
        Name  Flags
      list    
      filter  

  public static void bash(java.lang.String, java.io.File, java.io.File, picocli.CommandLine);
    descriptor: (Ljava/lang/String;Ljava/io/File;Ljava/io/File;Lpicocli/CommandLine;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // java.lang.String scriptName
        start local 1 // java.io.File out
        start local 2 // java.io.File command
        start local 3 // picocli.CommandLine commandLine
         0: .line 438
            aload 0 /* scriptName */
            aload 3 /* commandLine */
            invokestatic picocli.AutoComplete.bash:(Ljava/lang/String;Lpicocli/CommandLine;)Ljava/lang/String;
            astore 4 /* autoCompleteScript */
        start local 4 // java.lang.String autoCompleteScript
         1: .line 439
            aconst_null
            astore 5 /* completionWriter */
        start local 5 // java.io.Writer completionWriter
         2: .line 440
            aconst_null
            astore 6 /* scriptWriter */
        start local 6 // java.io.Writer scriptWriter
         3: .line 442
            new java.io.FileWriter
            dup
            aload 1 /* out */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 5 /* completionWriter */
         4: .line 443
            aload 5 /* completionWriter */
            aload 4 /* autoCompleteScript */
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
         5: .line 445
            aload 2 /* command */
            ifnull 15
         6: .line 446
            new java.io.FileWriter
            dup
            aload 2 /* command */
            invokespecial java.io.FileWriter.<init>:(Ljava/io/File;)V
            astore 6 /* scriptWriter */
         7: .line 447
            aload 6 /* scriptWriter */
            new java.lang.StringBuilder
            dup
            ldc "#!/usr/bin/env bash\n\nLIBS=path/to/libs\nCP=\"${LIBS}/myApp.jar\"\njava -cp \"${CP}\" '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 452
            aload 3 /* commandLine */
            invokevirtual picocli.CommandLine.getCommand:()Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' $@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 447
            invokevirtual java.io.Writer.write:(Ljava/lang/String;)V
        10: .line 454
            goto 15
      StackMap locals: java.lang.String java.io.File java.io.File picocli.CommandLine java.lang.String java.io.Writer java.io.Writer
      StackMap stack: java.lang.Throwable
        11: astore 7
        12: .line 455
            aload 5 /* completionWriter */
            ifnull 13
            aload 5 /* completionWriter */
            invokevirtual java.io.Writer.close:()V
        13: .line 456
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 6 /* scriptWriter */
            ifnull 14
            aload 6 /* scriptWriter */
            invokevirtual java.io.Writer.close:()V
        14: .line 457
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        15: .line 455
      StackMap locals:
      StackMap stack:
            aload 5 /* completionWriter */
            ifnull 16
            aload 5 /* completionWriter */
            invokevirtual java.io.Writer.close:()V
        16: .line 456
      StackMap locals:
      StackMap stack:
            aload 6 /* scriptWriter */
            ifnull 17
            aload 6 /* scriptWriter */
            invokevirtual java.io.Writer.close:()V
        17: .line 458
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.io.Writer scriptWriter
        end local 5 // java.io.Writer completionWriter
        end local 4 // java.lang.String autoCompleteScript
        end local 3 // picocli.CommandLine commandLine
        end local 2 // java.io.File command
        end local 1 // java.io.File out
        end local 0 // java.lang.String scriptName
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   18     0          scriptName  Ljava/lang/String;
            0   18     1                 out  Ljava/io/File;
            0   18     2             command  Ljava/io/File;
            0   18     3         commandLine  Lpicocli/CommandLine;
            1   18     4  autoCompleteScript  Ljava/lang/String;
            2   18     5    completionWriter  Ljava/io/Writer;
            3   18     6        scriptWriter  Ljava/io/Writer;
      Exception table:
        from    to  target  type
           3    11      11  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      scriptName   
      out          
      command      
      commandLine  

  public static java.lang.String bash(java.lang.String, picocli.CommandLine);
    descriptor: (Ljava/lang/String;Lpicocli/CommandLine;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // java.lang.String scriptName
        start local 1 // picocli.CommandLine commandLine
         0: .line 467
            aload 0 /* scriptName */
            ifnonnull 1
            new java.lang.NullPointerException
            dup
            ldc "scriptName"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 468
      StackMap locals:
      StackMap stack:
            aload 1 /* commandLine */
            ifnonnull 2
            new java.lang.NullPointerException
            dup
            ldc "commandLine"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 469
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* result */
        start local 2 // java.lang.StringBuilder result
         3: .line 470
            aload 2 /* result */
            ldc "#!/usr/bin/env bash\n#\n# %1$s Bash Completion\n# =======================\n#\n# Bash completion support for the `%1$s` command,\n# generated by [picocli](http://picocli.info/) version %2$s.\n#\n# Installation\n# ------------\n#\n# 1. Source all completion scripts in your .bash_profile\n#\n#   cd $YOUR_APP_HOME/bin\n#   for f in $(find . -name \"*_completion\"); do line=\". $(pwd)/$f\"; grep \"$line\" ~/.bash_profile || echo \"$line\" >> ~/.bash_profile; done\n#\n# 2. Open a new bash console, and type `%1$s [TAB][TAB]`\n#\n# 1a. Alternatively, if you have [bash-completion](https://github.com/scop/bash-completion) installed:\n#     Place this file in a `bash-completion.d` folder:\n#\n#   * /etc/bash-completion.d\n#   * /usr/local/etc/bash-completion.d\n#   * ~/bash-completion.d\n#\n# Documentation\n# -------------\n# The script is called by bash whenever [TAB] or [TAB][TAB] is pressed after\n# '%1$s (..)'. By reading entered command line parameters,\n# it determines possible bash completions and writes them to the COMPREPLY variable.\n# Bash then completes the user input if only one entry is listed in the variable or\n# shows the options if more than one is listed in COMPREPLY.\n#\n# References\n# ----------\n# [1] http://stackoverflow.com/a/12495480/1440785\n# [2] http://tiswww.case.edu/php/chet/bash/FAQ\n# [3] https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html\n# [4] http://zsh.sourceforge.net/Doc/Release/Options.html#index-COMPLETE_005fALIASES\n# [5] https://stackoverflow.com/questions/17042057/bash-check-element-in-array-for-elements-in-another-array/17042655#17042655\n# [6] https://www.gnu.org/software/bash/manual/html_node/Programmable-Completion.html#Programmable-Completion\n# [7] https://stackoverflow.com/questions/3249432/can-a-bash-tab-completion-script-be-used-in-zsh/27853970#27853970\n#\n\nif [ -n \"$BASH_VERSION\" ]; then\n  # Enable programmable completion facilities when using bash (see [3])\n  shopt -s progcomp\nelif [ -n \"$ZSH_VERSION\" ]; then\n  # Make alias a distinct command for completion purposes when using zsh (see [4])\n  setopt COMPLETE_ALIASES\n  alias compopt=complete\n\n  # Enable bash completion in zsh (see [7])\n  autoload -U +X compinit && compinit\n  autoload -U +X bashcompinit && bashcompinit\nfi\n\n# CompWordsContainsArray takes an array and then checks\n# if all elements of this array are in the global COMP_WORDS array.\n#\n# Returns zero (no error) if all elements of the array are in the COMP_WORDS array,\n# otherwise returns 1 (error).\nfunction CompWordsContainsArray() {\n  declare -a localArray\n  localArray=(\"$@\")\n  local findme\n  for findme in \"${localArray[@]}\"; do\n    if ElementNotInCompWords \"$findme\"; then return 1; fi\n  done\n  return 0\n}\nfunction ElementNotInCompWords() {\n  local findme=\"$1\"\n  local element\n  for element in \"${COMP_WORDS[@]}\"; do\n    if [[ \"$findme\" = \"$element\" ]]; then return 1; fi\n  done\n  return 0\n}\n\n# The `currentPositionalIndex` function calculates the index of the current positional parameter.\n#\n# currentPositionalIndex takes three parameters:\n# the command name,\n# a space-separated string with the names of options that take a parameter, and\n# a space-separated string with the names of boolean options (that don't take any params).\n# When done, this function echos the current positional index to std_out.\n#\n# Example usage:\n# local currIndex=$(currentPositionalIndex \"mysubcommand\" \"$ARG_OPTS\" \"$FLAG_OPTS\")\nfunction currentPositionalIndex() {\n  local commandName=\"$1\"\n  local optionsWithArgs=\"$2\"\n  local booleanOptions=\"$3\"\n  local previousWord\n  local result=0\n\n  for i in $(seq $((COMP_CWORD - 1)) -1 0); do\n    previousWord=${COMP_WORDS[i]}\n    if [ \"${previousWord}\" = \"$commandName\" ]; then\n      break\n    fi\n    if [[ \"${optionsWithArgs}\" =~ ${previousWord} ]]; then\n      ((result-=2)) # Arg option and its value not counted as positional param\n    elif [[ \"${booleanOptions}\" =~ ${previousWord} ]]; then\n      ((result-=1)) # Flag option itself not counted as positional param\n    fi\n    ((result++))\n  done\n  echo \"$result\"\n}\n\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* scriptName */
            aastore
            dup
            iconst_1
            ldc "4.2.0"
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 472
            new java.util.LinkedHashMap
            dup
            invokespecial java.util.LinkedHashMap.<init>:()V
            astore 3 /* function2command */
        start local 3 // java.util.Map function2command
         5: .line 473
            aload 2 /* result */
            aload 0 /* scriptName */
            aload 1 /* commandLine */
            aload 3 /* function2command */
            invokestatic picocli.AutoComplete.generateEntryPointFunction:(Ljava/lang/String;Lpicocli/CommandLine;Ljava/util/Map;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 475
            aload 3 /* function2command */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: java.lang.String picocli.CommandLine java.lang.StringBuilder java.util.Map top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* functionSpec */
        start local 4 // java.util.Map$Entry functionSpec
         8: .line 476
            aload 4 /* functionSpec */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokevirtual picocli.CommandLine$Model$CommandSpec.usageMessage:()Lpicocli/CommandLine$Model$UsageMessageSpec;
            invokevirtual picocli.CommandLine$Model$UsageMessageSpec.hidden:()Z
            ifeq 9
            goto 11
         9: .line 477
      StackMap locals: java.lang.String picocli.CommandLine java.lang.StringBuilder java.util.Map java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 4 /* functionSpec */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast picocli.AutoComplete$CommandDescriptor
            astore 6 /* descriptor */
        start local 6 // picocli.AutoComplete$CommandDescriptor descriptor
        10: .line 478
            aload 2 /* result */
            aload 6 /* descriptor */
            getfield picocli.AutoComplete$CommandDescriptor.functionName:Ljava/lang/String;
            aload 6 /* descriptor */
            getfield picocli.AutoComplete$CommandDescriptor.commandName:Ljava/lang/String;
            aload 4 /* functionSpec */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokestatic picocli.AutoComplete.generateFunctionForCommand:(Ljava/lang/String;Ljava/lang/String;Lpicocli/CommandLine;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // picocli.AutoComplete$CommandDescriptor descriptor
        end local 4 // java.util.Map$Entry functionSpec
        11: .line 475
      StackMap locals: java.lang.String picocli.CommandLine java.lang.StringBuilder java.util.Map top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        12: .line 480
            aload 2 /* result */
            ldc "\n# Define a completion specification (a compspec) for the\n# `%1$s`, `%1$s.sh`, and `%1$s.bash` commands.\n# Uses the bash `complete` builtin (see [6]) to specify that shell function\n# `_complete_%1$s` is responsible for generating possible completions for the\n# current word on the command line.\n# The `-o default` option means that if the function generated no matches, the\n# default Bash completions and the Readline default filename completions are performed.\ncomplete -F _complete_%1$s -o default %1$s %1$s.sh %1$s.bash\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* scriptName */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        13: .line 481
            aload 2 /* result */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.util.Map function2command
        end local 2 // java.lang.StringBuilder result
        end local 1 // picocli.CommandLine commandLine
        end local 0 // java.lang.String scriptName
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0        scriptName  Ljava/lang/String;
            0   14     1       commandLine  Lpicocli/CommandLine;
            3   14     2            result  Ljava/lang/StringBuilder;
            5   14     3  function2command  Ljava/util/Map<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;
            8   11     4      functionSpec  Ljava/util/Map$Entry<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;
           10   11     6        descriptor  Lpicocli/AutoComplete$CommandDescriptor;
    MethodParameters:
             Name  Flags
      scriptName   
      commandLine  

  private static java.lang.String generateEntryPointFunction(java.lang.String, picocli.CommandLine, java.util.Map<picocli.AutoComplete$CommandDescriptor, picocli.CommandLine>);
    descriptor: (Ljava/lang/String;Lpicocli/CommandLine;Ljava/util/Map;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=10, args_size=3
        start local 0 // java.lang.String scriptName
        start local 1 // picocli.CommandLine commandLine
        start local 2 // java.util.Map function2command
         0: .line 487
            ldc "# Bash completion entry point function.\n# _complete_%1$s finds which commands and subcommands have been specified\n# on the command line and delegates to the appropriate function\n# to generate possible options and subcommands for the last specified subcommand.\nfunction _complete_%1$s() {\n"
            astore 3 /* FUNCTION_HEADER */
        start local 3 // java.lang.String FUNCTION_HEADER
         1: .line 508
            ldc "\n  # No subcommands were specified; generate completions for the top-level command.\n  _picocli_%1$s; return $?;\n}\n"
            astore 4 /* FUNCTION_FOOTER */
        start local 4 // java.lang.String FUNCTION_FOOTER
         2: .line 513
            new java.lang.StringBuilder
            dup
            sipush 1024
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 5 /* buff */
        start local 5 // java.lang.StringBuilder buff
         3: .line 514
            aload 5 /* buff */
            aload 3 /* FUNCTION_HEADER */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* scriptName */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 516
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* predecessors */
        start local 6 // java.util.List predecessors
         5: .line 517
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* functionCallsToArrContains */
        start local 7 // java.util.List functionCallsToArrContains
         6: .line 519
            aload 2 /* function2command */
            new picocli.AutoComplete$CommandDescriptor
            dup
            new java.lang.StringBuilder
            dup
            ldc "_picocli_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* scriptName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 0 /* scriptName */
            invokespecial picocli.AutoComplete$CommandDescriptor.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aload 1 /* commandLine */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 520
            aload 0 /* scriptName */
            aload 6 /* predecessors */
            aload 1 /* commandLine */
            aload 5 /* buff */
            aload 7 /* functionCallsToArrContains */
            aload 2 /* function2command */
            invokestatic picocli.AutoComplete.generateFunctionCallsToArrContains:(Ljava/lang/String;Ljava/util/List;Lpicocli/CommandLine;Ljava/lang/StringBuilder;Ljava/util/List;Ljava/util/Map;)V
         8: .line 522
            aload 5 /* buff */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 523
            aload 7 /* functionCallsToArrContains */
            invokestatic java.util.Collections.reverse:(Ljava/util/List;)V
        10: .line 524
            aload 7 /* functionCallsToArrContains */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 13
      StackMap locals: java.lang.String picocli.CommandLine java.util.Map java.lang.String java.lang.String java.lang.StringBuilder java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        11: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* func */
        start local 8 // java.lang.String func
        12: .line 525
            aload 5 /* buff */
            aload 8 /* func */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 8 // java.lang.String func
        13: .line 524
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 11
        14: .line 527
            aload 5 /* buff */
            aload 4 /* FUNCTION_FOOTER */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* scriptName */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 528
            aload 5 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 7 // java.util.List functionCallsToArrContains
        end local 6 // java.util.List predecessors
        end local 5 // java.lang.StringBuilder buff
        end local 4 // java.lang.String FUNCTION_FOOTER
        end local 3 // java.lang.String FUNCTION_HEADER
        end local 2 // java.util.Map function2command
        end local 1 // picocli.CommandLine commandLine
        end local 0 // java.lang.String scriptName
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0   16     0                  scriptName  Ljava/lang/String;
            0   16     1                 commandLine  Lpicocli/CommandLine;
            0   16     2            function2command  Ljava/util/Map<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;
            1   16     3             FUNCTION_HEADER  Ljava/lang/String;
            2   16     4             FUNCTION_FOOTER  Ljava/lang/String;
            3   16     5                        buff  Ljava/lang/StringBuilder;
            5   16     6                predecessors  Ljava/util/List<Ljava/lang/String;>;
            6   16     7  functionCallsToArrContains  Ljava/util/List<Ljava/lang/String;>;
           12   13     8                        func  Ljava/lang/String;
    Signature: (Ljava/lang/String;Lpicocli/CommandLine;Ljava/util/Map<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;)Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      scriptName        
      commandLine       
      function2command  

  private static void generateFunctionCallsToArrContains(java.lang.String, java.util.List<java.lang.String>, picocli.CommandLine, java.lang.StringBuilder, java.util.List<java.lang.String>, java.util.Map<picocli.AutoComplete$CommandDescriptor, picocli.CommandLine>);
    descriptor: (Ljava/lang/String;Ljava/util/List;Lpicocli/CommandLine;Ljava/lang/StringBuilder;Ljava/util/List;Ljava/util/Map;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=10, locals=10, args_size=6
        start local 0 // java.lang.String scriptName
        start local 1 // java.util.List predecessors
        start local 2 // picocli.CommandLine commandLine
        start local 3 // java.lang.StringBuilder buff
        start local 4 // java.util.List functionCalls
        start local 5 // java.util.Map function2command
         0: .line 539
            aload 2 /* commandLine */
            invokevirtual picocli.CommandLine.getSubcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: java.lang.String java.util.List picocli.CommandLine java.lang.StringBuilder java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
         2: .line 540
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokevirtual picocli.CommandLine$Model$CommandSpec.usageMessage:()Lpicocli/CommandLine$Model$UsageMessageSpec;
            invokevirtual picocli.CommandLine$Model$UsageMessageSpec.hidden:()Z
            ifeq 3
            goto 8
         3: .line 541
      StackMap locals: java.lang.String java.util.List picocli.CommandLine java.lang.StringBuilder java.util.List java.util.Map java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 4 /* functionCalls */
            invokeinterface java.util.List.size:()I
            istore 8 /* count */
        start local 8 // int count
         4: .line 542
            new java.lang.StringBuilder
            dup
            ldc "_picocli_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* scriptName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "_"
            aload 1 /* predecessors */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            new picocli.AutoComplete$Bashify
            dup
            invokespecial picocli.AutoComplete$Bashify.<init>:()V
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;Ljava/lang/Object;Lpicocli/AutoComplete$Function;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 9 /* functionName */
        start local 9 // java.lang.String functionName
         5: .line 543
            aload 4 /* functionCalls */
            ldc "  if CompWordsContainsArray \"${cmds%2$d[@]}\"; then %1$s; return $?; fi\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 9 /* functionName */
            aastore
            dup
            iconst_1
            iload 8 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 544
            aload 3 /* buff */
            ldc "  local cmds%2$d=(%1$s)\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            ldc " "
            aload 1 /* predecessors */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            new picocli.AutoComplete$NullFunction
            dup
            invokespecial picocli.AutoComplete$NullFunction.<init>:()V
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;Ljava/lang/Object;Lpicocli/AutoComplete$Function;)Ljava/lang/String;
            aastore
            dup
            iconst_1
            iload 8 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 547
            aload 5 /* function2command */
            new picocli.AutoComplete$CommandDescriptor
            dup
            aload 9 /* functionName */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokespecial picocli.AutoComplete$CommandDescriptor.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // java.lang.String functionName
        end local 8 // int count
        end local 6 // java.util.Map$Entry entry
         8: .line 539
      StackMap locals: java.lang.String java.util.List picocli.CommandLine java.lang.StringBuilder java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         9: .line 551
            aload 2 /* commandLine */
            invokevirtual picocli.CommandLine.getSubcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 15
      StackMap locals:
      StackMap stack:
        10: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
        11: .line 552
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokevirtual picocli.CommandLine$Model$CommandSpec.usageMessage:()Lpicocli/CommandLine$Model$UsageMessageSpec;
            invokevirtual picocli.CommandLine$Model$UsageMessageSpec.hidden:()Z
            ifeq 12
            goto 15
        12: .line 553
      StackMap locals: java.lang.String java.util.List picocli.CommandLine java.lang.StringBuilder java.util.List java.util.Map java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 1 /* predecessors */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        13: .line 554
            aload 0 /* scriptName */
            aload 1 /* predecessors */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            aload 3 /* buff */
            aload 4 /* functionCalls */
            aload 5 /* function2command */
            invokestatic picocli.AutoComplete.generateFunctionCallsToArrContains:(Ljava/lang/String;Ljava/util/List;Lpicocli/CommandLine;Ljava/lang/StringBuilder;Ljava/util/List;Ljava/util/Map;)V
        14: .line 555
            aload 1 /* predecessors */
            aload 1 /* predecessors */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
        end local 6 // java.util.Map$Entry entry
        15: .line 551
      StackMap locals: java.lang.String java.util.List picocli.CommandLine java.lang.StringBuilder java.util.List java.util.Map top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        16: .line 557
            return
        end local 5 // java.util.Map function2command
        end local 4 // java.util.List functionCalls
        end local 3 // java.lang.StringBuilder buff
        end local 2 // picocli.CommandLine commandLine
        end local 1 // java.util.List predecessors
        end local 0 // java.lang.String scriptName
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0        scriptName  Ljava/lang/String;
            0   17     1      predecessors  Ljava/util/List<Ljava/lang/String;>;
            0   17     2       commandLine  Lpicocli/CommandLine;
            0   17     3              buff  Ljava/lang/StringBuilder;
            0   17     4     functionCalls  Ljava/util/List<Ljava/lang/String;>;
            0   17     5  function2command  Ljava/util/Map<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;
            2    8     6             entry  Ljava/util/Map$Entry<Ljava/lang/String;Lpicocli/CommandLine;>;
            4    8     8             count  I
            5    8     9      functionName  Ljava/lang/String;
           11   15     6             entry  Ljava/util/Map$Entry<Ljava/lang/String;Lpicocli/CommandLine;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;Lpicocli/CommandLine;Ljava/lang/StringBuilder;Ljava/util/List<Ljava/lang/String;>;Ljava/util/Map<Lpicocli/AutoComplete$CommandDescriptor;Lpicocli/CommandLine;>;)V
    MethodParameters:
                  Name  Flags
      scriptName        
      predecessors      
      commandLine       
      buff              
      functionCalls     
      function2command  

  private static java.lang.String concat(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
    flags: (0x008a) ACC_PRIVATE, ACC_STATIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String infix
        start local 1 // java.lang.String[] values
         0: .line 559
            aload 0 /* infix */
            aload 1 /* values */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String[] values
        end local 0 // java.lang.String infix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   infix  Ljava/lang/String;
            0    1     1  values  [Ljava/lang/String;
    MethodParameters:
        Name  Flags
      infix   
      values  

  private static java.lang.String concat(java.lang.String, java.util.List<java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.lang.String infix
        start local 1 // java.util.List values
         0: .line 562
            aload 0 /* infix */
            aload 1 /* values */
            aconst_null
            new picocli.AutoComplete$NullFunction
            dup
            invokespecial picocli.AutoComplete$NullFunction.<init>:()V
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;Ljava/lang/Object;Lpicocli/AutoComplete$Function;)Ljava/lang/String;
            areturn
        end local 1 // java.util.List values
        end local 0 // java.lang.String infix
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0   infix  Ljava/lang/String;
            0    1     1  values  Ljava/util/List<Ljava/lang/String;>;
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
        Name  Flags
      infix   
      values  

  private static <V, T extends V> java.lang.String concat(java.lang.String, java.util.List<T>, T, picocli.AutoComplete$Function<V, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/List;Ljava/lang/Object;Lpicocli/AutoComplete$Function;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // java.lang.String infix
        start local 1 // java.util.List values
        start local 2 // java.lang.Object lastValue
        start local 3 // picocli.AutoComplete$Function normalize
         0: .line 565
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 4 /* sb */
        start local 4 // java.lang.StringBuilder sb
         1: .line 566
            aload 1 /* values */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 5
      StackMap locals: java.lang.String java.util.List java.lang.Object picocli.AutoComplete$Function java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 5 /* val */
        start local 5 // java.lang.Object val
         3: .line 567
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 4
            aload 4 /* sb */
            aload 0 /* infix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 568
      StackMap locals: java.lang.String java.util.List java.lang.Object picocli.AutoComplete$Function java.lang.StringBuilder java.lang.Object java.util.Iterator
      StackMap stack:
            aload 4 /* sb */
            aload 3 /* normalize */
            aload 5 /* val */
            invokeinterface picocli.AutoComplete$Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 5 // java.lang.Object val
         5: .line 566
      StackMap locals: java.lang.String java.util.List java.lang.Object picocli.AutoComplete$Function java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 570
            aload 2 /* lastValue */
            ifnonnull 7
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         7: .line 571
      StackMap locals: java.lang.String java.util.List java.lang.Object picocli.AutoComplete$Function java.lang.StringBuilder
      StackMap stack:
            aload 4 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 8
            aload 4 /* sb */
            aload 0 /* infix */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 572
      StackMap locals:
      StackMap stack:
            aload 4 /* sb */
            aload 3 /* normalize */
            aload 2 /* lastValue */
            invokeinterface picocli.AutoComplete$Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 4 // java.lang.StringBuilder sb
        end local 3 // picocli.AutoComplete$Function normalize
        end local 2 // java.lang.Object lastValue
        end local 1 // java.util.List values
        end local 0 // java.lang.String infix
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0      infix  Ljava/lang/String;
            0    9     1     values  Ljava/util/List<TT;>;
            0    9     2  lastValue  TT;
            0    9     3  normalize  Lpicocli/AutoComplete$Function<TV;Ljava/lang/String;>;
            1    9     4         sb  Ljava/lang/StringBuilder;
            3    5     5        val  TT;
    Signature: <V:Ljava/lang/Object;T:TV;>(Ljava/lang/String;Ljava/util/List<TT;>;TT;Lpicocli/AutoComplete$Function<TV;Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      infix      
      values     
      lastValue  
      normalize  

  private static java.lang.String generateFunctionForCommand(java.lang.String, java.lang.String, picocli.CommandLine);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lpicocli/CommandLine;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=16, args_size=3
        start local 0 // java.lang.String functionName
        start local 1 // java.lang.String commandName
        start local 2 // picocli.CommandLine commandLine
         0: .line 576
            ldc "\n# Generates completions for the options and subcommands of the `%s` %scommand.\nfunction %s() {\n  # Get completion data\n  local curr_word=${COMP_WORDS[COMP_CWORD]}\n%s\n  local commands=\"%s\"\n  local flag_opts=\"%s\"\n  local arg_opts=\"%s\"\n"
            astore 3 /* FUNCTION_HEADER */
        start local 3 // java.lang.String FUNCTION_HEADER
         1: .line 587
            ldc "\n  if [[ \"${curr_word}\" == -* ]]; then\n    COMPREPLY=( $(compgen -W \"${flag_opts} ${arg_opts}\" -- \"${curr_word}\") )\n  else\n    local positionals=\"\"\n%s    COMPREPLY=( $(compgen -W \"${commands} ${positionals}\" -- \"${curr_word}\") )\n  fi\n}\n"
            astore 4 /* FUNCTION_FOOTER */
        start local 4 // java.lang.String FUNCTION_FOOTER
         2: .line 599
            aload 2 /* commandLine */
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            astore 5 /* commandSpec */
        start local 5 // picocli.CommandLine$Model$CommandSpec commandSpec
         3: .line 602
            aload 5 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.options:()Ljava/util/List;
            new picocli.AutoComplete$BooleanArgFilter
            dup
            invokespecial picocli.AutoComplete$BooleanArgFilter.<init>:()V
            invokestatic picocli.AutoComplete.filter:(Ljava/util/List;Lpicocli/AutoComplete$Predicate;)Ljava/util/List;
            invokestatic picocli.AutoComplete.optionNames:(Ljava/util/List;)Ljava/lang/String;
            astore 6 /* flagOptionNames */
        start local 6 // java.lang.String flagOptionNames
         4: .line 603
            aload 5 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.options:()Ljava/util/List;
            new picocli.AutoComplete$BooleanArgFilter
            dup
            invokespecial picocli.AutoComplete$BooleanArgFilter.<init>:()V
            invokestatic picocli.AutoComplete.negate:(Lpicocli/AutoComplete$Predicate;)Lpicocli/AutoComplete$Predicate;
            invokestatic picocli.AutoComplete.filter:(Ljava/util/List;Lpicocli/AutoComplete$Predicate;)Ljava/util/List;
            astore 7 /* argOptionFields */
        start local 7 // java.util.List argOptionFields
         5: .line 604
            aload 7 /* argOptionFields */
            invokestatic picocli.AutoComplete.optionNames:(Ljava/util/List;)Ljava/lang/String;
            astore 8 /* argOptionNames */
        start local 8 // java.lang.String argOptionNames
         6: .line 605
            ldc " "
            new java.util.ArrayList
            dup
            aload 2 /* commandLine */
            invokevirtual picocli.CommandLine.getSubcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 9 /* commands */
        start local 9 // java.lang.String commands
         7: .line 608
            new java.lang.StringBuilder
            dup
            sipush 1024
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 10 /* buff */
        start local 10 // java.lang.StringBuilder buff
         8: .line 609
            aload 0 /* functionName */
            new java.lang.StringBuilder
            dup
            ldc "_picocli_"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* commandName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 9
            ldc ""
            goto 10
      StackMap locals: java.lang.String java.lang.String picocli.CommandLine java.lang.String java.lang.String picocli.CommandLine$Model$CommandSpec java.lang.String java.util.List java.lang.String java.lang.String java.lang.StringBuilder
      StackMap stack:
         9: ldc "sub"
      StackMap locals:
      StackMap stack: java.lang.String
        10: astore 11 /* sub */
        start local 11 // java.lang.String sub
        11: .line 610
            aload 7 /* argOptionFields */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 12
            ldc ""
            goto 13
      StackMap locals: java.lang.String
      StackMap stack:
        12: ldc "  local prev_word=${COMP_WORDS[COMP_CWORD-1]}\n"
      StackMap locals:
      StackMap stack: java.lang.String
        13: astore 12 /* previous_word */
        start local 12 // java.lang.String previous_word
        14: .line 611
            aload 10 /* buff */
            aload 3 /* FUNCTION_HEADER */
            bipush 7
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* commandName */
            aastore
            dup
            iconst_1
            aload 11 /* sub */
            aastore
            dup
            iconst_2
            aload 0 /* functionName */
            aastore
            dup
            iconst_3
            aload 12 /* previous_word */
            aastore
            dup
            iconst_4
            aload 9 /* commands */
            aastore
            dup
            iconst_5
            aload 6 /* flagOptionNames */
            aastore
            dup
            bipush 6
            aload 8 /* argOptionNames */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 614
            aload 5 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.options:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 20
      StackMap locals: java.lang.String java.lang.String picocli.CommandLine java.lang.String java.lang.String picocli.CommandLine$Model$CommandSpec java.lang.String java.util.List java.lang.String java.lang.String java.lang.StringBuilder java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
        16: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$OptionSpec
            astore 13 /* f */
        start local 13 // picocli.CommandLine$Model$OptionSpec f
        17: .line 615
            aload 13 /* f */
            invokevirtual picocli.CommandLine$Model$OptionSpec.hidden:()Z
            ifeq 18
            goto 20
        18: .line 616
      StackMap locals: java.lang.String java.lang.String picocli.CommandLine java.lang.String java.lang.String picocli.CommandLine$Model$CommandSpec java.lang.String java.util.List java.lang.String java.lang.String java.lang.StringBuilder java.lang.String java.lang.String picocli.CommandLine$Model$OptionSpec java.util.Iterator
      StackMap stack:
            aload 13 /* f */
            invokevirtual picocli.CommandLine$Model$OptionSpec.completionCandidates:()Ljava/lang/Iterable;
            ifnull 20
        19: .line 617
            aload 10 /* buff */
            aload 13 /* f */
            invokestatic picocli.AutoComplete.generateCompletionCandidates:(Ljava/lang/StringBuilder;Lpicocli/CommandLine$Model$OptionSpec;)V
        end local 13 // picocli.CommandLine$Model$OptionSpec f
        20: .line 614
      StackMap locals: java.lang.String java.lang.String picocli.CommandLine java.lang.String java.lang.String picocli.CommandLine$Model$CommandSpec java.lang.String java.util.List java.lang.String java.lang.String java.lang.StringBuilder java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        21: .line 627
            aload 10 /* buff */
            aload 7 /* argOptionFields */
            invokestatic picocli.AutoComplete.generateOptionsSwitch:(Ljava/util/List;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 630
            aload 5 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.positionalParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 14
            goto 26
      StackMap locals:
      StackMap stack:
        23: aload 14
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            astore 13 /* f */
        start local 13 // picocli.CommandLine$Model$PositionalParamSpec f
        24: .line 631
            aload 13 /* f */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.completionCandidates:()Ljava/lang/Iterable;
            ifnull 26
        25: .line 632
            aload 10 /* buff */
            aload 13 /* f */
            invokestatic picocli.AutoComplete.generatePositionParamCompletionCandidates:(Ljava/lang/StringBuilder;Lpicocli/CommandLine$Model$PositionalParamSpec;)V
        end local 13 // picocli.CommandLine$Model$PositionalParamSpec f
        26: .line 630
      StackMap locals:
      StackMap stack:
            aload 14
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        27: .line 636
            aload 5 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.positionalParameters:()Ljava/util/List;
            ldc ""
            ldc "${curr_word}"
            invokestatic picocli.AutoComplete.generatePositionalParamsCases:(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 13 /* paramsCases */
        start local 13 // java.lang.String paramsCases
        28: .line 637
            ldc ""
            astore 14 /* posParamsFooter */
        start local 14 // java.lang.String posParamsFooter
        29: .line 638
            aload 13 /* paramsCases */
            invokevirtual java.lang.String.length:()I
            ifle 32
        30: .line 639
            ldc "    local currIndex\n    currIndex=$(currentPositionalIndex \"%s\" \"${arg_opts}\" \"${flag_opts}\")\n%s"
            astore 15 /* POSITIONAL_PARAMS_FOOTER */
        start local 15 // java.lang.String POSITIONAL_PARAMS_FOOTER
        31: .line 643
            aload 15 /* POSITIONAL_PARAMS_FOOTER */
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* commandName */
            aastore
            dup
            iconst_1
            aload 13 /* paramsCases */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            astore 14 /* posParamsFooter */
        end local 15 // java.lang.String POSITIONAL_PARAMS_FOOTER
        32: .line 646
      StackMap locals: java.lang.String java.lang.String picocli.CommandLine java.lang.String java.lang.String picocli.CommandLine$Model$CommandSpec java.lang.String java.util.List java.lang.String java.lang.String java.lang.StringBuilder java.lang.String java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 10 /* buff */
            aload 4 /* FUNCTION_FOOTER */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 14 /* posParamsFooter */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        33: .line 647
            aload 10 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 14 // java.lang.String posParamsFooter
        end local 13 // java.lang.String paramsCases
        end local 12 // java.lang.String previous_word
        end local 11 // java.lang.String sub
        end local 10 // java.lang.StringBuilder buff
        end local 9 // java.lang.String commands
        end local 8 // java.lang.String argOptionNames
        end local 7 // java.util.List argOptionFields
        end local 6 // java.lang.String flagOptionNames
        end local 5 // picocli.CommandLine$Model$CommandSpec commandSpec
        end local 4 // java.lang.String FUNCTION_FOOTER
        end local 3 // java.lang.String FUNCTION_HEADER
        end local 2 // picocli.CommandLine commandLine
        end local 1 // java.lang.String commandName
        end local 0 // java.lang.String functionName
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   34     0              functionName  Ljava/lang/String;
            0   34     1               commandName  Ljava/lang/String;
            0   34     2               commandLine  Lpicocli/CommandLine;
            1   34     3           FUNCTION_HEADER  Ljava/lang/String;
            2   34     4           FUNCTION_FOOTER  Ljava/lang/String;
            3   34     5               commandSpec  Lpicocli/CommandLine$Model$CommandSpec;
            4   34     6           flagOptionNames  Ljava/lang/String;
            5   34     7           argOptionFields  Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;
            6   34     8            argOptionNames  Ljava/lang/String;
            7   34     9                  commands  Ljava/lang/String;
            8   34    10                      buff  Ljava/lang/StringBuilder;
           11   34    11                       sub  Ljava/lang/String;
           14   34    12             previous_word  Ljava/lang/String;
           17   20    13                         f  Lpicocli/CommandLine$Model$OptionSpec;
           24   26    13                         f  Lpicocli/CommandLine$Model$PositionalParamSpec;
           28   34    13               paramsCases  Ljava/lang/String;
           29   34    14           posParamsFooter  Ljava/lang/String;
           31   32    15  POSITIONAL_PARAMS_FOOTER  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      functionName  
      commandName   
      commandLine   

  private static void generatePositionParamCompletionCandidates(java.lang.StringBuilder, picocli.CommandLine$Model$PositionalParamSpec);
    descriptor: (Ljava/lang/StringBuilder;Lpicocli/CommandLine$Model$PositionalParamSpec;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // java.lang.StringBuilder buff
        start local 1 // picocli.CommandLine$Model$PositionalParamSpec f
         0: .line 651
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.paramLabel:()Ljava/lang/String;
            invokestatic picocli.AutoComplete.bashify:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 2 /* paramName */
        start local 2 // java.lang.String paramName
         1: .line 652
            aload 0 /* buff */
            ldc "  local %s_pos_param_args=\"%s\" # %d-%d values\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 653
            aload 2 /* paramName */
            aastore
            dup
            iconst_1
         3: .line 654
            ldc " "
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.completionCandidates:()Ljava/lang/Iterable;
            invokestatic picocli.AutoComplete.extract:(Ljava/lang/Iterable;)Ljava/util/List;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         4: .line 655
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.index:()Lpicocli/CommandLine$Range;
            invokevirtual picocli.CommandLine$Range.min:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.index:()Lpicocli/CommandLine$Range;
            invokevirtual picocli.CommandLine$Range.max:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         5: .line 652
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 656
            return
        end local 2 // java.lang.String paramName
        end local 1 // picocli.CommandLine$Model$PositionalParamSpec f
        end local 0 // java.lang.StringBuilder buff
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       buff  Ljava/lang/StringBuilder;
            0    7     1          f  Lpicocli/CommandLine$Model$PositionalParamSpec;
            1    7     2  paramName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      buff  
      f     

  private static void generateCompletionCandidates(java.lang.StringBuilder, picocli.CommandLine$Model$OptionSpec);
    descriptor: (Ljava/lang/StringBuilder;Lpicocli/CommandLine$Model$OptionSpec;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // java.lang.StringBuilder buff
        start local 1 // picocli.CommandLine$Model$OptionSpec f
         0: .line 659
            aload 0 /* buff */
            ldc "  local %s_option_args=\"%s\" # %s values\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 660
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$OptionSpec.paramLabel:()Ljava/lang/String;
            invokestatic picocli.AutoComplete.bashify:(Ljava/lang/CharSequence;)Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 661
            ldc " "
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$OptionSpec.completionCandidates:()Ljava/lang/Iterable;
            invokestatic picocli.AutoComplete.extract:(Ljava/lang/Iterable;)Ljava/util/List;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         3: .line 662
            aload 1 /* f */
            invokevirtual picocli.CommandLine$Model$OptionSpec.longestName:()Ljava/lang/String;
            aastore
         4: .line 659
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 663
            return
        end local 1 // picocli.CommandLine$Model$OptionSpec f
        end local 0 // java.lang.StringBuilder buff
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  buff  Ljava/lang/StringBuilder;
            0    6     1     f  Lpicocli/CommandLine$Model$OptionSpec;
    MethodParameters:
      Name  Flags
      buff  
      f     

  private static java.util.List<java.lang.String> extract(java.lang.Iterable<java.lang.String>);
    descriptor: (Ljava/lang/Iterable;)Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Iterable generator
         0: .line 665
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 666
            aload 0 /* generator */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* e */
        start local 2 // java.lang.String e
         3: .line 667
            aload 1 /* result */
            aload 2 /* e */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String e
         4: .line 666
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 669
            aload 1 /* result */
            areturn
        end local 1 // java.util.List result
        end local 0 // java.lang.Iterable generator
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0  generator  Ljava/lang/Iterable<Ljava/lang/String;>;
            1    6     1     result  Ljava/util/List<Ljava/lang/String;>;
            3    4     2          e  Ljava/lang/String;
    Signature: (Ljava/lang/Iterable<Ljava/lang/String;>;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
           Name  Flags
      generator  

  private static java.lang.String generatePositionalParamsCases(java.util.List<picocli.CommandLine$Model$PositionalParamSpec>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=3
        start local 0 // java.util.List posParams
        start local 1 // java.lang.String indent
        start local 2 // java.lang.String currWord
         0: .line 673
            new java.lang.StringBuilder
            dup
            sipush 1024
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 3 /* buff */
        start local 3 // java.lang.StringBuilder buff
         1: .line 674
            aload 0 /* posParams */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 26
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            astore 4 /* param */
        start local 4 // picocli.CommandLine$Model$PositionalParamSpec param
         3: .line 675
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.hidden:()Z
            ifeq 4
            goto 26
         4: .line 676
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder picocli.CommandLine$Model$PositionalParamSpec java.util.Iterator
      StackMap stack:
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.type:()Ljava/lang/Class;
            astore 6 /* type */
        start local 6 // java.lang.Class type
         5: .line 677
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.typeInfo:()Lpicocli/CommandLine$Model$ITypeInfo;
            invokeinterface picocli.CommandLine$Model$ITypeInfo.isMultiValue:()Z
            ifeq 7
         6: .line 678
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.typeInfo:()Lpicocli/CommandLine$Model$ITypeInfo;
            invokeinterface picocli.CommandLine$Model$ITypeInfo.getAuxiliaryTypes:()[Ljava/lang/Class;
            iconst_0
            aaload
            astore 6 /* type */
         7: .line 680
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.paramLabel:()Ljava/lang/String;
            invokestatic picocli.AutoComplete.bashify:(Ljava/lang/CharSequence;)Ljava/lang/String;
            astore 7 /* paramName */
        start local 7 // java.lang.String paramName
         8: .line 681
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 9
            ldc "elif"
            goto 10
      StackMap locals: java.lang.String
      StackMap stack:
         9: ldc "if"
      StackMap locals:
      StackMap stack: java.lang.String
        10: astore 8 /* ifOrElif */
        start local 8 // java.lang.String ifOrElif
        11: .line 682
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.index:()Lpicocli/CommandLine$Range;
            invokevirtual picocli.CommandLine$Range.min:()I
            istore 9 /* min */
        start local 9 // int min
        12: .line 683
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.index:()Lpicocli/CommandLine$Range;
            invokevirtual picocli.CommandLine$Range.max:()I
            istore 10 /* max */
        start local 10 // int max
        13: .line 684
            aload 4 /* param */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.completionCandidates:()Ljava/lang/Iterable;
            ifnull 17
        14: .line 685
            aload 3 /* buff */
            ldc "%s    %s (( currIndex >= %d && currIndex <= %d )); then\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 8 /* ifOrElif */
            aastore
            dup
            iconst_2
            iload 9 /* min */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iload 10 /* max */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 686
            aload 3 /* buff */
            ldc "%s      positionals=$( compgen -W \"$%s_pos_param_args\" -- \"%s\" )\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 7 /* paramName */
            aastore
            dup
            iconst_2
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 687
            goto 26
      StackMap locals: java.lang.String int int
      StackMap stack:
        17: aload 6 /* type */
            ldc Ljava/io/File;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 18
            ldc "java.nio.file.Path"
            aload 6 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 22
        18: .line 688
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            ldc "%s    %s (( currIndex >= %d && currIndex <= %d )); then\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 8 /* ifOrElif */
            aastore
            dup
            iconst_2
            iload 9 /* min */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iload 10 /* max */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 689
            aload 3 /* buff */
            ldc "%s      compopt -o filenames\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 690
            aload 3 /* buff */
            ldc "%s      positionals=$( compgen -f -- \"%s\" ) # files\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        21: .line 691
            goto 26
      StackMap locals:
      StackMap stack:
        22: aload 6 /* type */
            ldc Ljava/net/InetAddress;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 26
        23: .line 692
            aload 3 /* buff */
            ldc "%s    %s (( currIndex >= %d && currIndex <= %d )); then\n"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 8 /* ifOrElif */
            aastore
            dup
            iconst_2
            iload 9 /* min */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            iload 10 /* max */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 693
            aload 3 /* buff */
            ldc "%s      compopt -o filenames\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 694
            aload 3 /* buff */
            ldc "%s      positionals=$( compgen -A hostname -- \"%s\" )\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 10 // int max
        end local 9 // int min
        end local 8 // java.lang.String ifOrElif
        end local 7 // java.lang.String paramName
        end local 6 // java.lang.Class type
        end local 4 // picocli.CommandLine$Model$PositionalParamSpec param
        26: .line 674
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        27: .line 697
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 29
        28: .line 698
            aload 3 /* buff */
            ldc "%s    fi\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 700
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder
      StackMap stack:
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder buff
        end local 2 // java.lang.String currWord
        end local 1 // java.lang.String indent
        end local 0 // java.util.List posParams
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   30     0  posParams  Ljava/util/List<Lpicocli/CommandLine$Model$PositionalParamSpec;>;
            0   30     1     indent  Ljava/lang/String;
            0   30     2   currWord  Ljava/lang/String;
            1   30     3       buff  Ljava/lang/StringBuilder;
            3   26     4      param  Lpicocli/CommandLine$Model$PositionalParamSpec;
            5   26     6       type  Ljava/lang/Class<*>;
            8   26     7  paramName  Ljava/lang/String;
           11   26     8   ifOrElif  Ljava/lang/String;
           12   26     9        min  I
           13   26    10        max  I
    Signature: (Ljava/util/List<Lpicocli/CommandLine$Model$PositionalParamSpec;>;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
           Name  Flags
      posParams  
      indent     
      currWord   

  private static java.lang.String generateOptionsSwitch(java.util.List<picocli.CommandLine$Model$OptionSpec>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.List argOptions
         0: .line 704
            aload 0 /* argOptions */
            ldc ""
            ldc "${curr_word}"
            invokestatic picocli.AutoComplete.generateOptionsCases:(Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* optionsCases */
        start local 1 // java.lang.String optionsCases
         1: .line 706
            aload 1 /* optionsCases */
            invokevirtual java.lang.String.length:()I
            ifne 3
         2: .line 707
            ldc ""
            areturn
         3: .line 710
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            sipush 1024
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 2 /* buff */
        start local 2 // java.lang.StringBuilder buff
         4: .line 711
            aload 2 /* buff */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         5: .line 712
            aload 2 /* buff */
            ldc "  compopt +o default\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 713
            aload 2 /* buff */
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         7: .line 714
            aload 2 /* buff */
            ldc "  case ${prev_word} in\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 715
            aload 2 /* buff */
            aload 1 /* optionsCases */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 716
            aload 2 /* buff */
            ldc "  esac\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 717
            aload 2 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.StringBuilder buff
        end local 1 // java.lang.String optionsCases
        end local 0 // java.util.List argOptions
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0    argOptions  Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;
            1   11     1  optionsCases  Ljava/lang/String;
            4   11     2          buff  Ljava/lang/StringBuilder;
    Signature: (Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;)Ljava/lang/String;
    MethodParameters:
            Name  Flags
      argOptions  

  private static java.lang.String generateOptionsCases(java.util.List<picocli.CommandLine$Model$OptionSpec>, java.lang.String, java.lang.String);
    descriptor: (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=7, args_size=3
        start local 0 // java.util.List argOptionFields
        start local 1 // java.lang.String indent
        start local 2 // java.lang.String currWord
         0: .line 721
            new java.lang.StringBuilder
            dup
            sipush 1024
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 3 /* buff */
        start local 3 // java.lang.StringBuilder buff
         1: .line 722
            aload 0 /* argOptionFields */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 5
            goto 30
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
         2: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$OptionSpec
            astore 4 /* option */
        start local 4 // picocli.CommandLine$Model$OptionSpec option
         3: .line 723
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.hidden:()Z
            ifeq 4
            goto 30
         4: .line 724
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder picocli.CommandLine$Model$OptionSpec java.util.Iterator
      StackMap stack:
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.type:()Ljava/lang/Class;
            astore 6 /* type */
        start local 6 // java.lang.Class type
         5: .line 725
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.typeInfo:()Lpicocli/CommandLine$Model$ITypeInfo;
            invokeinterface picocli.CommandLine$Model$ITypeInfo.isMultiValue:()Z
            ifeq 7
         6: .line 726
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.typeInfo:()Lpicocli/CommandLine$Model$ITypeInfo;
            invokeinterface picocli.CommandLine$Model$ITypeInfo.getAuxiliaryTypes:()[Ljava/lang/Class;
            iconst_0
            aaload
            astore 6 /* type */
         7: .line 728
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.completionCandidates:()Ljava/lang/Iterable;
            ifnull 13
         8: .line 729
            aload 3 /* buff */
            ldc "%s    %s)\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            ldc "|"
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.names:()[Ljava/lang/String;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         9: .line 730
            aload 3 /* buff */
            ldc "%s      COMPREPLY=( $( compgen -W \"${%s_option_args}\" -- \"%s\" ) )\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.paramLabel:()Ljava/lang/String;
            invokestatic picocli.AutoComplete.bashify:(Ljava/lang/CharSequence;)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 731
            aload 3 /* buff */
            ldc "%s      return $?\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 732
            aload 3 /* buff */
            ldc "%s      ;;\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        12: .line 733
            goto 30
      StackMap locals:
      StackMap stack:
        13: aload 6 /* type */
            ldc Ljava/io/File;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 14
            ldc "java.nio.file.Path"
            aload 6 /* type */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 20
        14: .line 734
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            ldc "%s    %s)\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            ldc "|"
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.names:()[Ljava/lang/String;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        15: .line 735
            aload 3 /* buff */
            ldc "%s      compopt -o filenames\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        16: .line 736
            aload 3 /* buff */
            ldc "%s      COMPREPLY=( $( compgen -f -- \"%s\" ) ) # files\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 737
            aload 3 /* buff */
            ldc "%s      return $?\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 738
            aload 3 /* buff */
            ldc "%s      ;;\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 739
            goto 30
      StackMap locals:
      StackMap stack:
        20: aload 6 /* type */
            ldc Ljava/net/InetAddress;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 27
        21: .line 740
            aload 3 /* buff */
            ldc "%s    %s)\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            ldc "|"
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.names:()[Ljava/lang/String;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        22: .line 741
            aload 3 /* buff */
            ldc "%s      compopt -o filenames\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        23: .line 742
            aload 3 /* buff */
            ldc "%s      COMPREPLY=( $( compgen -A hostname -- \"%s\" ) )\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            aload 2 /* currWord */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        24: .line 743
            aload 3 /* buff */
            ldc "%s      return $?\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        25: .line 744
            aload 3 /* buff */
            ldc "%s      ;;\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        26: .line 745
            goto 30
        27: .line 746
      StackMap locals:
      StackMap stack:
            aload 3 /* buff */
            ldc "%s    %s)\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            dup
            iconst_1
            ldc "|"
            aload 4 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.names:()[Ljava/lang/String;
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 747
            aload 3 /* buff */
            ldc "%s      return\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        29: .line 748
            aload 3 /* buff */
            ldc "%s      ;;\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* indent */
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        end local 6 // java.lang.Class type
        end local 4 // picocli.CommandLine$Model$OptionSpec option
        30: .line 722
      StackMap locals: java.util.List java.lang.String java.lang.String java.lang.StringBuilder top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
        31: .line 751
            aload 3 /* buff */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 3 // java.lang.StringBuilder buff
        end local 2 // java.lang.String currWord
        end local 1 // java.lang.String indent
        end local 0 // java.util.List argOptionFields
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   32     0  argOptionFields  Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;
            0   32     1           indent  Ljava/lang/String;
            0   32     2         currWord  Ljava/lang/String;
            1   32     3             buff  Ljava/lang/StringBuilder;
            3   30     4           option  Lpicocli/CommandLine$Model$OptionSpec;
            5   30     6             type  Ljava/lang/Class<*>;
    Signature: (Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    MethodParameters:
                 Name  Flags
      argOptionFields  
      indent           
      currWord         

  private static java.lang.String optionNames(java.util.List<picocli.CommandLine$Model$OptionSpec>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // java.util.List options
         0: .line 755
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* result */
        start local 1 // java.util.List result
         1: .line 756
            aload 0 /* options */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 5
      StackMap locals: java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$OptionSpec
            astore 2 /* option */
        start local 2 // picocli.CommandLine$Model$OptionSpec option
         3: .line 757
            aload 2 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.hidden:()Z
            ifeq 4
            goto 5
         4: .line 758
      StackMap locals: java.util.List java.util.List picocli.CommandLine$Model$OptionSpec java.util.Iterator
      StackMap stack:
            aload 1 /* result */
            aload 2 /* option */
            invokevirtual picocli.CommandLine$Model$OptionSpec.names:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 2 // picocli.CommandLine$Model$OptionSpec option
         5: .line 756
      StackMap locals: java.util.List java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 760
            ldc " "
            aload 1 /* result */
            ldc ""
            new picocli.AutoComplete$NullFunction
            dup
            invokespecial picocli.AutoComplete$NullFunction.<init>:()V
            invokestatic picocli.AutoComplete.concat:(Ljava/lang/String;Ljava/util/List;Ljava/lang/Object;Lpicocli/AutoComplete$Function;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            areturn
        end local 1 // java.util.List result
        end local 0 // java.util.List options
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  options  Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;
            1    7     1   result  Ljava/util/List<Ljava/lang/String;>;
            3    5     2   option  Lpicocli/CommandLine$Model$OptionSpec;
    Signature: (Ljava/util/List<Lpicocli/CommandLine$Model$OptionSpec;>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      options  

  public static int complete(picocli.CommandLine$Model$CommandSpec, java.lang.String[], int, int, int, java.util.List<java.lang.CharSequence>);
    descriptor: (Lpicocli/CommandLine$Model$CommandSpec;[Ljava/lang/String;IIILjava/util/List;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=19, args_size=6
        start local 0 // picocli.CommandLine$Model$CommandSpec spec
        start local 1 // java.lang.String[] args
        start local 2 // int argIndex
        start local 3 // int positionInArg
        start local 4 // int cursor
        start local 5 // java.util.List candidates
         0: .line 764
            aload 0 /* spec */
            ifnonnull 1
            new java.lang.NullPointerException
            dup
            ldc "spec is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 765
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            ifnonnull 2
            new java.lang.NullPointerException
            dup
            ldc "args is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 766
      StackMap locals:
      StackMap stack:
            aload 5 /* candidates */
            ifnonnull 3
            new java.lang.NullPointerException
            dup
            ldc "candidates list is null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 767
      StackMap locals:
      StackMap stack:
            iload 2 /* argIndex */
            aload 1 /* args */
            arraylength
            if_icmpne 8
         4: .line 768
            aload 1 /* args */
            arraylength
            iconst_1
            iadd
            anewarray java.lang.String
            astore 6 /* copy */
        start local 6 // java.lang.String[] copy
         5: .line 769
            aload 1 /* args */
            iconst_0
            aload 6 /* copy */
            iconst_0
            aload 1 /* args */
            arraylength
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         6: .line 770
            aload 6 /* copy */
            astore 1 /* args */
         7: .line 771
            aload 1 /* args */
            iload 2 /* argIndex */
            ldc ""
            aastore
        end local 6 // java.lang.String[] copy
         8: .line 773
      StackMap locals:
      StackMap stack:
            iload 2 /* argIndex */
            iflt 9
            iload 2 /* argIndex */
            aload 1 /* args */
            arraylength
            if_icmplt 10
      StackMap locals:
      StackMap stack:
         9: new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid argIndex "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* argIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": args array only has "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* args */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " elements."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 774
      StackMap locals:
      StackMap stack:
            iload 3 /* positionInArg */
            iflt 11
            iload 3 /* positionInArg */
            aload 1 /* args */
            iload 2 /* argIndex */
            aaload
            invokevirtual java.lang.String.length:()I
            if_icmple 12
      StackMap locals:
      StackMap stack:
        11: new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid positionInArg "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* positionInArg */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": args["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* argIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "] ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* args */
            iload 2 /* argIndex */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ") only has "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* args */
            iload 2 /* argIndex */
            aaload
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " characters."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 776
      StackMap locals:
      StackMap stack:
            aload 1 /* args */
            iload 2 /* argIndex */
            aaload
            astore 6 /* currentArg */
        start local 6 // java.lang.String currentArg
        13: .line 777
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            invokevirtual picocli.CommandLine$Model$ParserSpec.collectErrors:()Z
            istore 7 /* reset */
        start local 7 // boolean reset
        14: .line 779
            aload 6 /* currentArg */
            iconst_0
            iload 3 /* positionInArg */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* committedPrefix */
        start local 8 // java.lang.String committedPrefix
        15: .line 781
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            iconst_1
            invokevirtual picocli.CommandLine$Model$ParserSpec.collectErrors:(Z)Lpicocli/CommandLine$Model$ParserSpec;
            pop
        16: .line 782
            new picocli.CommandLine
            dup
            aload 0 /* spec */
            invokespecial picocli.CommandLine.<init>:(Ljava/lang/Object;)V
            astore 9 /* parser */
        start local 9 // picocli.CommandLine parser
        17: .line 783
            aload 9 /* parser */
            aload 1 /* args */
            invokevirtual picocli.CommandLine.parseArgs:([Ljava/lang/String;)Lpicocli/CommandLine$ParseResult;
            astore 10 /* parseResult */
        start local 10 // picocli.CommandLine$ParseResult parseResult
        18: .line 784
            iload 2 /* argIndex */
            aload 10 /* parseResult */
            getfield picocli.CommandLine$ParseResult.tentativeMatch:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 22
        19: .line 785
            aload 10 /* parseResult */
            invokestatic picocli.AutoComplete.findCompletionStartPoint:(Lpicocli/CommandLine$ParseResult;)Ljava/lang/Object;
            astore 11 /* startPoint */
        start local 11 // java.lang.Object startPoint
        20: .line 786
            aload 11 /* startPoint */
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Ljava/lang/Object;Ljava/util/List;)V
        end local 11 // java.lang.Object startPoint
        21: .line 787
            goto 56
        22: .line 788
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.lang.String[] int int int java.util.List java.lang.String int java.lang.String picocli.CommandLine picocli.CommandLine$ParseResult
      StackMap stack:
            aload 10 /* parseResult */
            getfield picocli.CommandLine$ParseResult.tentativeMatch:Ljava/util/List;
            iload 2 /* argIndex */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 11 /* obj */
        start local 11 // java.lang.Object obj
        23: .line 789
            aload 11 /* obj */
            instanceof picocli.CommandLine$Model$CommandSpec
            ifeq 26
        24: .line 790
            aload 11 /* obj */
            checkcast picocli.CommandLine$Model$CommandSpec
            invokevirtual picocli.CommandLine$Model$CommandSpec.parent:()Lpicocli/CommandLine$Model$CommandSpec;
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List;)V
        25: .line 792
            goto 56
      StackMap locals: java.lang.Object
      StackMap stack:
        26: aload 11 /* obj */
            instanceof picocli.CommandLine$Model$OptionSpec
            ifeq 45
        27: .line 793
            aload 6 /* currentArg */
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            invokevirtual picocli.CommandLine$Model$ParserSpec.separator:()Ljava/lang/String;
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            istore 12 /* sep */
        start local 12 // int sep
        28: .line 794
            iload 12 /* sep */
            iflt 29
            iload 3 /* positionInArg */
            iload 12 /* sep */
            if_icmpge 31
        29: .line 795
      StackMap locals: int
      StackMap stack:
            aload 11 /* obj */
            checkcast picocli.CommandLine$Model$OptionSpec
            aload 0 /* spec */
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$OptionSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List;)V
        30: .line 796
            goto 56
        31: .line 797
      StackMap locals:
      StackMap stack:
            aload 11 /* obj */
            checkcast picocli.CommandLine$Model$OptionSpec
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$OptionSpec;Ljava/util/List;)V
        32: .line 799
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            invokevirtual picocli.CommandLine$Model$ParserSpec.separator:()Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            istore 13 /* sepLength */
        start local 13 // int sepLength
        33: .line 800
            iload 3 /* positionInArg */
            iload 12 /* sep */
            iload 13 /* sepLength */
            iadd
            if_icmpge 43
        34: .line 801
            iload 3 /* positionInArg */
            iload 12 /* sep */
            isub
            istore 14 /* posInSeparator */
        start local 14 // int posInSeparator
        35: .line 802
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            invokevirtual picocli.CommandLine$Model$ParserSpec.separator:()Ljava/lang/String;
            iload 14 /* posInSeparator */
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 15 /* prefix */
        start local 15 // java.lang.String prefix
        36: .line 803
            iconst_0
            istore 16 /* i */
        start local 16 // int i
        37: goto 40
        38: .line 804
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.lang.String[] int int int java.util.List java.lang.String int java.lang.String picocli.CommandLine picocli.CommandLine$ParseResult java.lang.Object int int int java.lang.String int
      StackMap stack:
            aload 5 /* candidates */
            iload 16 /* i */
            new java.lang.StringBuilder
            dup
            aload 15 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* candidates */
            iload 16 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.List.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        39: .line 803
            iinc 16 /* i */ 1
      StackMap locals:
      StackMap stack:
        40: iload 16 /* i */
            aload 5 /* candidates */
            invokeinterface java.util.List.size:()I
            if_icmplt 38
        end local 16 // int i
        41: .line 806
            aload 6 /* currentArg */
            iload 12 /* sep */
            iload 3 /* positionInArg */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* committedPrefix */
        end local 15 // java.lang.String prefix
        end local 14 // int posInSeparator
        42: .line 807
            goto 56
        43: .line 808
      StackMap locals:
      StackMap stack:
            aload 6 /* currentArg */
            iload 12 /* sep */
            iload 13 /* sepLength */
            iadd
            iload 3 /* positionInArg */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 8 /* committedPrefix */
        end local 13 // int sepLength
        end local 12 // int sep
        44: .line 812
            goto 56
      StackMap locals:
      StackMap stack:
        45: aload 11 /* obj */
            instanceof picocli.CommandLine$Model$PositionalParamSpec
            ifeq 48
        46: .line 814
            aload 11 /* obj */
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            aload 0 /* spec */
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$PositionalParamSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List;)V
        47: .line 816
            goto 56
        48: .line 817
      StackMap locals:
      StackMap stack:
            iload 2 /* argIndex */
            iconst_1
            isub
            istore 12 /* i */
        start local 12 // int i
        49: .line 818
            goto 51
      StackMap locals: int
      StackMap stack:
        50: iinc 12 /* i */ -1
      StackMap locals:
      StackMap stack:
        51: iload 12 /* i */
            ifle 52
            aload 10 /* parseResult */
            getfield picocli.CommandLine$ParseResult.tentativeMatch:Ljava/util/List;
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            invokestatic picocli.AutoComplete.isPicocliModelObject:(Ljava/lang/Object;)Z
            ifeq 50
        52: .line 819
      StackMap locals:
      StackMap stack:
            iload 12 /* i */
            ifge 55
        53: .line 826
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            iload 7 /* reset */
            invokevirtual picocli.CommandLine$Model$ParserSpec.collectErrors:(Z)Lpicocli/CommandLine$Model$ParserSpec;
            pop
        54: .line 819
            iconst_m1
            ireturn
        55: .line 820
      StackMap locals:
      StackMap stack:
            aload 10 /* parseResult */
            getfield picocli.CommandLine$ParseResult.tentativeMatch:Ljava/util/List;
            iload 12 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Ljava/lang/Object;Ljava/util/List;)V
        end local 12 // int i
        end local 11 // java.lang.Object obj
        56: .line 823
      StackMap locals:
      StackMap stack:
            aload 8 /* committedPrefix */
            aload 5 /* candidates */
            invokestatic picocli.AutoComplete.filterAndTrimMatchingPrefix:(Ljava/lang/String;Ljava/util/List;)V
        57: .line 824
            aload 5 /* candidates */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 58
            iconst_m1
            goto 59
      StackMap locals:
      StackMap stack:
        58: iload 4 /* cursor */
      StackMap locals:
      StackMap stack: int
        59: istore 18
        60: .line 826
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            iload 7 /* reset */
            invokevirtual picocli.CommandLine$Model$ParserSpec.collectErrors:(Z)Lpicocli/CommandLine$Model$ParserSpec;
            pop
        61: .line 824
            iload 18
            ireturn
        end local 10 // picocli.CommandLine$ParseResult parseResult
        end local 9 // picocli.CommandLine parser
        end local 8 // java.lang.String committedPrefix
        62: .line 825
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.lang.String[] int int int java.util.List java.lang.String int
      StackMap stack: java.lang.Throwable
            astore 17
        63: .line 826
            aload 0 /* spec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.parser:()Lpicocli/CommandLine$Model$ParserSpec;
            iload 7 /* reset */
            invokevirtual picocli.CommandLine$Model$ParserSpec.collectErrors:(Z)Lpicocli/CommandLine$Model$ParserSpec;
            pop
        64: .line 827
            aload 17
            athrow
        end local 7 // boolean reset
        end local 6 // java.lang.String currentArg
        end local 5 // java.util.List candidates
        end local 4 // int cursor
        end local 3 // int positionInArg
        end local 2 // int argIndex
        end local 1 // java.lang.String[] args
        end local 0 // picocli.CommandLine$Model$CommandSpec spec
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   65     0             spec  Lpicocli/CommandLine$Model$CommandSpec;
            0   65     1             args  [Ljava/lang/String;
            0   65     2         argIndex  I
            0   65     3    positionInArg  I
            0   65     4           cursor  I
            0   65     5       candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
            5    8     6             copy  [Ljava/lang/String;
           13   65     6       currentArg  Ljava/lang/String;
           14   65     7            reset  Z
           15   62     8  committedPrefix  Ljava/lang/String;
           17   62     9           parser  Lpicocli/CommandLine;
           18   62    10      parseResult  Lpicocli/CommandLine$ParseResult;
           20   21    11       startPoint  Ljava/lang/Object;
           23   56    11              obj  Ljava/lang/Object;
           28   44    12              sep  I
           33   44    13        sepLength  I
           35   42    14   posInSeparator  I
           36   42    15           prefix  Ljava/lang/String;
           37   41    16                i  I
           49   56    12                i  I
      Exception table:
        from    to  target  type
          14    53      62  any
          55    60      62  any
    Signature: (Lpicocli/CommandLine$Model$CommandSpec;[Ljava/lang/String;IIILjava/util/List<Ljava/lang/CharSequence;>;)I
    MethodParameters:
               Name  Flags
      spec           
      args           
      argIndex       
      positionInArg  
      cursor         
      candidates     

  private static java.lang.Object findCompletionStartPoint(picocli.CommandLine$ParseResult);
    descriptor: (Lpicocli/CommandLine$ParseResult;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // picocli.CommandLine$ParseResult parseResult
         0: .line 830
            aload 0 /* parseResult */
            getfield picocli.CommandLine$ParseResult.tentativeMatch:Ljava/util/List;
            astore 1 /* tentativeMatches */
        start local 1 // java.util.List tentativeMatches
         1: .line 831
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         2: goto 12
         3: .line 832
      StackMap locals: java.util.List int
      StackMap stack:
            aload 1 /* tentativeMatches */
            aload 1 /* tentativeMatches */
            invokeinterface java.util.List.size:()I
            iload 2 /* i */
            isub
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 3 /* found */
        start local 3 // java.lang.Object found
         4: .line 833
            aload 3 /* found */
            instanceof picocli.CommandLine$Model$CommandSpec
            ifeq 6
         5: .line 834
            aload 3 /* found */
            areturn
         6: .line 836
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 3 /* found */
            instanceof picocli.CommandLine$Model$ArgSpec
            ifeq 11
         7: .line 837
            aload 3 /* found */
            checkcast picocli.CommandLine$Model$ArgSpec
            invokevirtual picocli.CommandLine$Model$ArgSpec.arity:()Lpicocli/CommandLine$Range;
            astore 4 /* arity */
        start local 4 // picocli.CommandLine$Range arity
         8: .line 838
            iload 2 /* i */
            aload 4 /* arity */
            invokevirtual picocli.CommandLine$Range.min:()I
            if_icmpge 10
         9: .line 839
            aload 3 /* found */
            areturn
        10: .line 841
      StackMap locals: picocli.CommandLine$Range
      StackMap stack:
            aload 3 /* found */
            checkcast picocli.CommandLine$Model$ArgSpec
            aload 0 /* parseResult */
            invokevirtual picocli.CommandLine$ParseResult.commandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$ArgSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            areturn
        end local 4 // picocli.CommandLine$Range arity
        end local 3 // java.lang.Object found
        11: .line 831
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 1 /* tentativeMatches */
            invokeinterface java.util.List.size:()I
            if_icmple 3
        end local 2 // int i
        13: .line 845
            aload 0 /* parseResult */
            invokevirtual picocli.CommandLine$ParseResult.commandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            areturn
        end local 1 // java.util.List tentativeMatches
        end local 0 // picocli.CommandLine$ParseResult parseResult
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   14     0       parseResult  Lpicocli/CommandLine$ParseResult;
            1   14     1  tentativeMatches  Ljava/util/List<Ljava/lang/Object;>;
            2   13     2                 i  I
            4   11     3             found  Ljava/lang/Object;
            8   11     4             arity  Lpicocli/CommandLine$Range;
    MethodParameters:
             Name  Flags
      parseResult  

  private static picocli.CommandLine$Model$CommandSpec findCommandFor(picocli.CommandLine$Model$ArgSpec, picocli.CommandLine$Model$CommandSpec);
    descriptor: (Lpicocli/CommandLine$Model$ArgSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // picocli.CommandLine$Model$ArgSpec arg
        start local 1 // picocli.CommandLine$Model$CommandSpec cmd
         0: .line 849
            aload 0 /* arg */
            instanceof picocli.CommandLine$Model$OptionSpec
            ifeq 1
            aload 0 /* arg */
            checkcast picocli.CommandLine$Model$OptionSpec
            aload 1 /* cmd */
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$OptionSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* arg */
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            aload 1 /* cmd */
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$PositionalParamSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
      StackMap locals:
      StackMap stack: picocli.CommandLine$Model$CommandSpec
         2: areturn
        end local 1 // picocli.CommandLine$Model$CommandSpec cmd
        end local 0 // picocli.CommandLine$Model$ArgSpec arg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   arg  Lpicocli/CommandLine$Model$ArgSpec;
            0    3     1   cmd  Lpicocli/CommandLine$Model$CommandSpec;
    MethodParameters:
      Name  Flags
      arg   
      cmd   

  private static picocli.CommandLine$Model$CommandSpec findCommandFor(picocli.CommandLine$Model$OptionSpec, picocli.CommandLine$Model$CommandSpec);
    descriptor: (Lpicocli/CommandLine$Model$OptionSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // picocli.CommandLine$Model$OptionSpec option
        start local 1 // picocli.CommandLine$Model$CommandSpec commandSpec
         0: .line 852
            aload 1 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.options:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: picocli.CommandLine$Model$OptionSpec picocli.CommandLine$Model$CommandSpec top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$OptionSpec
            astore 2 /* defined */
        start local 2 // picocli.CommandLine$Model$OptionSpec defined
         2: .line 853
            aload 2 /* defined */
            aload 0 /* option */
            if_acmpne 3
            aload 1 /* commandSpec */
            areturn
        end local 2 // picocli.CommandLine$Model$OptionSpec defined
         3: .line 852
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 855
            aload 1 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.subcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            astore 2 /* sub */
        start local 2 // picocli.CommandLine sub
         6: .line 856
            aload 0 /* option */
            aload 2 /* sub */
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$OptionSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            astore 4 /* result */
        start local 4 // picocli.CommandLine$Model$CommandSpec result
         7: .line 857
            aload 4 /* result */
            ifnull 8
            aload 4 /* result */
            areturn
        end local 4 // picocli.CommandLine$Model$CommandSpec result
        end local 2 // picocli.CommandLine sub
         8: .line 855
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 859
            aconst_null
            areturn
        end local 1 // picocli.CommandLine$Model$CommandSpec commandSpec
        end local 0 // picocli.CommandLine$Model$OptionSpec option
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0       option  Lpicocli/CommandLine$Model$OptionSpec;
            0   10     1  commandSpec  Lpicocli/CommandLine$Model$CommandSpec;
            2    3     2      defined  Lpicocli/CommandLine$Model$OptionSpec;
            6    8     2          sub  Lpicocli/CommandLine;
            7    8     4       result  Lpicocli/CommandLine$Model$CommandSpec;
    MethodParameters:
             Name  Flags
      option       
      commandSpec  

  private static picocli.CommandLine$Model$CommandSpec findCommandFor(picocli.CommandLine$Model$PositionalParamSpec, picocli.CommandLine$Model$CommandSpec);
    descriptor: (Lpicocli/CommandLine$Model$PositionalParamSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // picocli.CommandLine$Model$PositionalParamSpec positional
        start local 1 // picocli.CommandLine$Model$CommandSpec commandSpec
         0: .line 862
            aload 1 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.positionalParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: picocli.CommandLine$Model$PositionalParamSpec picocli.CommandLine$Model$CommandSpec top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            astore 2 /* defined */
        start local 2 // picocli.CommandLine$Model$PositionalParamSpec defined
         2: .line 863
            aload 2 /* defined */
            aload 0 /* positional */
            if_acmpne 3
            aload 1 /* commandSpec */
            areturn
        end local 2 // picocli.CommandLine$Model$PositionalParamSpec defined
         3: .line 862
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 865
            aload 1 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.subcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals:
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            astore 2 /* sub */
        start local 2 // picocli.CommandLine sub
         6: .line 866
            aload 0 /* positional */
            aload 2 /* sub */
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokestatic picocli.AutoComplete.findCommandFor:(Lpicocli/CommandLine$Model$PositionalParamSpec;Lpicocli/CommandLine$Model$CommandSpec;)Lpicocli/CommandLine$Model$CommandSpec;
            astore 4 /* result */
        start local 4 // picocli.CommandLine$Model$CommandSpec result
         7: .line 867
            aload 4 /* result */
            ifnull 8
            aload 4 /* result */
            areturn
        end local 4 // picocli.CommandLine$Model$CommandSpec result
        end local 2 // picocli.CommandLine sub
         8: .line 865
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 869
            aconst_null
            areturn
        end local 1 // picocli.CommandLine$Model$CommandSpec commandSpec
        end local 0 // picocli.CommandLine$Model$PositionalParamSpec positional
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0   positional  Lpicocli/CommandLine$Model$PositionalParamSpec;
            0   10     1  commandSpec  Lpicocli/CommandLine$Model$CommandSpec;
            2    3     2      defined  Lpicocli/CommandLine$Model$PositionalParamSpec;
            6    8     2          sub  Lpicocli/CommandLine;
            7    8     4       result  Lpicocli/CommandLine$Model$CommandSpec;
    MethodParameters:
             Name  Flags
      positional   
      commandSpec  

  private static boolean isPicocliModelObject(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object obj
         0: .line 872
            aload 0 /* obj */
            instanceof picocli.CommandLine$Model$CommandSpec
            ifne 1
            aload 0 /* obj */
            instanceof picocli.CommandLine$Model$OptionSpec
            ifne 1
            aload 0 /* obj */
            instanceof picocli.CommandLine$Model$PositionalParamSpec
            ifne 1
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_1
            ireturn
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   obj  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      obj   

  private static void filterAndTrimMatchingPrefix(java.lang.String, java.util.List<java.lang.CharSequence>);
    descriptor: (Ljava/lang/String;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // java.lang.String prefix
        start local 1 // java.util.List candidates
         0: .line 876
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 2 /* replace */
        start local 2 // java.util.List replace
         1: .line 877
            aload 1 /* candidates */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: java.lang.String java.util.List java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.CharSequence
            astore 3 /* seq */
        start local 3 // java.lang.CharSequence seq
         3: .line 878
            aload 3 /* seq */
            invokeinterface java.lang.CharSequence.toString:()Ljava/lang/String;
            aload 0 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 879
            aload 2 /* replace */
            aload 3 /* seq */
            aload 0 /* prefix */
            invokevirtual java.lang.String.length:()I
            aload 3 /* seq */
            invokeinterface java.lang.CharSequence.length:()I
            invokeinterface java.lang.CharSequence.subSequence:(II)Ljava/lang/CharSequence;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.lang.CharSequence seq
         5: .line 877
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 882
            aload 1 /* candidates */
            invokeinterface java.util.List.clear:()V
         7: .line 883
            aload 1 /* candidates */
            aload 2 /* replace */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 884
            return
        end local 2 // java.util.List replace
        end local 1 // java.util.List candidates
        end local 0 // java.lang.String prefix
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0      prefix  Ljava/lang/String;
            0    9     1  candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
            1    9     2     replace  Ljava/util/List<Ljava/lang/CharSequence;>;
            3    5     3         seq  Ljava/lang/CharSequence;
    Signature: (Ljava/lang/String;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
            Name  Flags
      prefix      
      candidates  

  private static void addCandidatesForArgsFollowing(, java.util.List<java.lang.CharSequence>);
    descriptor: (Ljava/lang/Object;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object obj
        start local 1 // java.util.List candidates
         0: .line 886
            aload 0 /* obj */
            ifnonnull 1
            return
         1: .line 887
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            instanceof picocli.CommandLine$Model$CommandSpec
            ifeq 4
         2: .line 888
            aload 0 /* obj */
            checkcast picocli.CommandLine$Model$CommandSpec
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List;)V
         3: .line 889
            goto 9
      StackMap locals:
      StackMap stack:
         4: aload 0 /* obj */
            instanceof picocli.CommandLine$Model$OptionSpec
            ifeq 7
         5: .line 890
            aload 0 /* obj */
            checkcast picocli.CommandLine$Model$OptionSpec
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$OptionSpec;Ljava/util/List;)V
         6: .line 891
            goto 9
      StackMap locals:
      StackMap stack:
         7: aload 0 /* obj */
            instanceof picocli.CommandLine$Model$PositionalParamSpec
            ifeq 9
         8: .line 892
            aload 0 /* obj */
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$PositionalParamSpec;Ljava/util/List;)V
         9: .line 894
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List candidates
        end local 0 // java.lang.Object obj
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0         obj  Ljava/lang/Object;
            0   10     1  candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
    Signature: (Ljava/lang/Object;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
            Name  Flags
      obj         
      candidates  

  private static void addCandidatesForArgsFollowing(picocli.CommandLine$Model$CommandSpec, java.util.List<java.lang.CharSequence>);
    descriptor: (Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // picocli.CommandLine$Model$CommandSpec commandSpec
        start local 1 // java.util.List candidates
         0: .line 896
            aload 0 /* commandSpec */
            ifnonnull 1
            return
         1: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.subcommands:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 898
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokevirtual picocli.CommandLine$Model$CommandSpec.usageMessage:()Lpicocli/CommandLine$Model$UsageMessageSpec;
            invokevirtual picocli.CommandLine$Model$UsageMessageSpec.hidden:()Z
            ifeq 4
            goto 6
         4: .line 899
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.util.List java.util.Map$Entry java.util.Iterator
      StackMap stack:
            aload 1 /* candidates */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.CharSequence
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 900
            aload 1 /* candidates */
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast picocli.CommandLine
            invokevirtual picocli.CommandLine.getCommandSpec:()Lpicocli/CommandLine$Model$CommandSpec;
            invokevirtual picocli.CommandLine$Model$CommandSpec.aliases:()[Ljava/lang/String;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 2 // java.util.Map$Entry entry
         6: .line 897
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 902
            aload 1 /* candidates */
            aload 0 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.optionsMap:()Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 903
            aload 0 /* commandSpec */
            invokevirtual picocli.CommandLine$Model$CommandSpec.positionalParameters:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 12
      StackMap locals:
      StackMap stack:
         9: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast picocli.CommandLine$Model$PositionalParamSpec
            astore 2 /* positional */
        start local 2 // picocli.CommandLine$Model$PositionalParamSpec positional
        10: .line 904
            aload 2 /* positional */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.hidden:()Z
            ifeq 11
            goto 12
        11: .line 905
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.util.List picocli.CommandLine$Model$PositionalParamSpec java.util.Iterator
      StackMap stack:
            aload 2 /* positional */
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCandidatesForArgsFollowing:(Lpicocli/CommandLine$Model$PositionalParamSpec;Ljava/util/List;)V
        end local 2 // picocli.CommandLine$Model$PositionalParamSpec positional
        12: .line 903
      StackMap locals: picocli.CommandLine$Model$CommandSpec java.util.List top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 907
            return
        end local 1 // java.util.List candidates
        end local 0 // picocli.CommandLine$Model$CommandSpec commandSpec
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0  commandSpec  Lpicocli/CommandLine$Model$CommandSpec;
            0   14     1   candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
            3    6     2        entry  Ljava/util/Map$Entry<Ljava/lang/String;Lpicocli/CommandLine;>;
           10   12     2   positional  Lpicocli/CommandLine$Model$PositionalParamSpec;
    Signature: (Lpicocli/CommandLine$Model$CommandSpec;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
             Name  Flags
      commandSpec  
      candidates   

  private static void addCandidatesForArgsFollowing(picocli.CommandLine$Model$OptionSpec, java.util.List<java.lang.CharSequence>);
    descriptor: (Lpicocli/CommandLine$Model$OptionSpec;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // picocli.CommandLine$Model$OptionSpec optionSpec
        start local 1 // java.util.List candidates
         0: .line 909
            aload 0 /* optionSpec */
            ifnull 2
            aload 0 /* optionSpec */
            invokevirtual picocli.CommandLine$Model$OptionSpec.hidden:()Z
            ifne 2
         1: .line 910
            aload 0 /* optionSpec */
            invokevirtual picocli.CommandLine$Model$OptionSpec.completionCandidates:()Ljava/lang/Iterable;
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCompletionCandidates:(Ljava/lang/Iterable;Ljava/util/List;)V
         2: .line 912
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List candidates
        end local 0 // picocli.CommandLine$Model$OptionSpec optionSpec
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  optionSpec  Lpicocli/CommandLine$Model$OptionSpec;
            0    3     1  candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
    Signature: (Lpicocli/CommandLine$Model$OptionSpec;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
            Name  Flags
      optionSpec  
      candidates  

  private static void addCandidatesForArgsFollowing(picocli.CommandLine$Model$PositionalParamSpec, java.util.List<java.lang.CharSequence>);
    descriptor: (Lpicocli/CommandLine$Model$PositionalParamSpec;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // picocli.CommandLine$Model$PositionalParamSpec positionalSpec
        start local 1 // java.util.List candidates
         0: .line 914
            aload 0 /* positionalSpec */
            ifnull 2
            aload 0 /* positionalSpec */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.hidden:()Z
            ifne 2
         1: .line 915
            aload 0 /* positionalSpec */
            invokevirtual picocli.CommandLine$Model$PositionalParamSpec.completionCandidates:()Ljava/lang/Iterable;
            aload 1 /* candidates */
            invokestatic picocli.AutoComplete.addCompletionCandidates:(Ljava/lang/Iterable;Ljava/util/List;)V
         2: .line 917
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.util.List candidates
        end local 0 // picocli.CommandLine$Model$PositionalParamSpec positionalSpec
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0  positionalSpec  Lpicocli/CommandLine$Model$PositionalParamSpec;
            0    3     1      candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
    Signature: (Lpicocli/CommandLine$Model$PositionalParamSpec;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
                Name  Flags
      positionalSpec  
      candidates      

  private static void addCompletionCandidates(java.lang.Iterable<java.lang.String>, java.util.List<java.lang.CharSequence>);
    descriptor: (Ljava/lang/Iterable;Ljava/util/List;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.Iterable completionCandidates
        start local 1 // java.util.List candidates
         0: .line 919
            aload 0 /* completionCandidates */
            ifnull 5
         1: .line 920
            aload 0 /* completionCandidates */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: java.lang.Iterable java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* candidate */
        start local 2 // java.lang.String candidate
         3: aload 1 /* candidates */
            aload 2 /* candidate */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String candidate
      StackMap locals:
      StackMap stack:
         4: aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 922
      StackMap locals: java.lang.Iterable java.util.List
      StackMap stack:
            return
        end local 1 // java.util.List candidates
        end local 0 // java.lang.Iterable completionCandidates
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    6     0  completionCandidates  Ljava/lang/Iterable<Ljava/lang/String;>;
            0    6     1            candidates  Ljava/util/List<Ljava/lang/CharSequence;>;
            3    4     2             candidate  Ljava/lang/String;
    Signature: (Ljava/lang/Iterable<Ljava/lang/String;>;Ljava/util/List<Ljava/lang/CharSequence;>;)V
    MethodParameters:
                      Name  Flags
      completionCandidates  
      candidates            
}
SourceFile: "AutoComplete.java"
NestMembers:
  picocli.AutoComplete$1  picocli.AutoComplete$2  picocli.AutoComplete$App  picocli.AutoComplete$Bashify  picocli.AutoComplete$BooleanArgFilter  picocli.AutoComplete$CommandDescriptor  picocli.AutoComplete$Function  picocli.AutoComplete$GenerateCompletion  picocli.AutoComplete$NullFunction  picocli.AutoComplete$Predicate
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  picocli.AutoComplete$1
  picocli.AutoComplete$2
  private App = picocli.AutoComplete$App of picocli.AutoComplete
  private Bashify = picocli.AutoComplete$Bashify of picocli.AutoComplete
  private BooleanArgFilter = picocli.AutoComplete$BooleanArgFilter of picocli.AutoComplete
  CommandDescriptor = picocli.AutoComplete$CommandDescriptor of picocli.AutoComplete
  private abstract Function = picocli.AutoComplete$Function of picocli.AutoComplete
  public GenerateCompletion = picocli.AutoComplete$GenerateCompletion of picocli.AutoComplete
  private NullFunction = picocli.AutoComplete$NullFunction of picocli.AutoComplete
  private abstract Predicate = picocli.AutoComplete$Predicate of picocli.AutoComplete
  public abstract IExecutionExceptionHandler = picocli.CommandLine$IExecutionExceptionHandler of picocli.CommandLine
  public final Model = picocli.CommandLine$Model of picocli.CommandLine
  public abstract ArgSpec = picocli.CommandLine$Model$ArgSpec of picocli.CommandLine$Model
  public CommandSpec = picocli.CommandLine$Model$CommandSpec of picocli.CommandLine$Model
  public abstract ITypeInfo = picocli.CommandLine$Model$ITypeInfo of picocli.CommandLine$Model
  public OptionSpec = picocli.CommandLine$Model$OptionSpec of picocli.CommandLine$Model
  public ParserSpec = picocli.CommandLine$Model$ParserSpec of picocli.CommandLine$Model
  public PositionalParamSpec = picocli.CommandLine$Model$PositionalParamSpec of picocli.CommandLine$Model
  public UsageMessageSpec = picocli.CommandLine$Model$UsageMessageSpec of picocli.CommandLine$Model
  public ParseResult = picocli.CommandLine$ParseResult of picocli.CommandLine
  public Range = picocli.CommandLine$Range of picocli.CommandLine