# AUTOMATICALLY GENERATED by https://github.com/tqdm/shtab

_shtab_b4_subparsers=(mbox am shazam review pr ty diff kr prep trailers send dig bugs)
_shtab_b4_review_subparsers=(tui enroll track forget show-info cron)
_shtab_b4_bugs_subparsers=(tui import delete refresh list)

_shtab_b4_option_strings=(-h --help --version -d --debug -q --quiet -n --no-interactive --offline-mode --no-stdin -c --config --print-completion)
_shtab_b4_mbox_option_strings=(-h --help -m --use-local-mbox --stdin-pipe-sep -C --no-cache --single-message --rethread -o --outdir -c --check-newer-revisions -n --mbox-name -M --save-as-maildir -f --filter-dupes -r --refetch --minimize)
_shtab_b4_am_option_strings=(-h --help -m --use-local-mbox --stdin-pipe-sep -C --no-cache --single-message --rethread -o --outdir -c --check-newer-revisions -n --mbox-name -M --save-as-maildir -v --use-version -t --apply-cover-trailers -S --sloppy-trailers -T --no-add-trailers -s --add-my-sob -P --cherry-pick -k --check --cc-trailers --no-parent --allow-unicode-control-chars -l --add-link -i --add-message-id -Q --quilt-ready -g --guess-base -b --guess-branch --guess-lookback -3 --prep-3way --no-cover --no-partial-reroll)
_shtab_b4_shazam_option_strings=(-h --help -m --use-local-mbox --stdin-pipe-sep -C --no-cache --single-message --rethread -v --use-version -t --apply-cover-trailers -S --sloppy-trailers -T --no-add-trailers -s --add-my-sob -P --cherry-pick -k --check --cc-trailers --no-parent --allow-unicode-control-chars -l --add-link -i --add-message-id -H --make-fetch-head -M --merge --guess-lookback --merge-base --resolve)
_shtab_b4_review_option_strings=(-h --help)
_shtab_b4_review_tui_option_strings=(-h --help -i --identifier --email-dry-run --no-sign --no-mouse)
_shtab_b4_review_enroll_option_strings=(-h --help -i --identifier)
_shtab_b4_review_track_option_strings=(-h --help -i --identifier --rethread)
_shtab_b4_review_forget_option_strings=(-h --help -i --identifier)
_shtab_b4_review_show_info_option_strings=(-h --help -l --list -j --json)
_shtab_b4_review_cron_option_strings=(-h --help -i --identifier --update --deliver-queue --dry-run --sign)
_shtab_b4_pr_option_strings=(-h --help -g --gitdir -b --branch -c --check -e --explode -o --output-mbox -f --from-addr -s --send-as-identity --dry-run)
_shtab_b4_ty_option_strings=(-h --help -g --gitdir -o --outdir -l --list -t --thank-for -d --discard -a --auto -i --interactive -b --branch --since -S --send-email --dry-run --pw-set-state --me-too)
_shtab_b4_diff_option_strings=(-h --help -g --gitdir -C --no-cache -v --compare-versions -n --no-diff -o --output-diff -c --color -m --compare-am-mboxes --range-diff-opts)
_shtab_b4_kr_option_strings=(-h --help -m --use-local-mbox --stdin-pipe-sep -C --no-cache --single-message --rethread --show-keys)
_shtab_b4_prep_option_strings=(-h --help -c --auto-to-cc --force-revision --set-prefixes --add-prefixes --set-presubject -C --no-cache --range-diff-opts -p --format-patch --edit-cover --edit-deps --check-deps --check --show-revision --compare-to --manual-reroll --show-info --cleanup --cleanup-older-than --claim -n --new -f --fork-point -F --from-thread -e --enroll)
_shtab_b4_trailers_option_strings=(-h --help -u --update -i --interactive -S --sloppy-trailers -F --trailers-from --since --since-commit --fuzzy -m --use-local-mbox --stdin-pipe-sep -C --no-cache --single-message --rethread)
_shtab_b4_send_option_strings=(-h --help -d --dry-run -o --output-dir --preview-to --reflect --no-trailer-to-cc --to --cc --not-me-too --resend --no-sign --force-cover-letter --use-web-endpoint --web-auth-new --web-auth-verify)
_shtab_b4_dig_option_strings=(-h --help -c --commitish -C --no-cache -a --all-series -m --save-mbox -w --who)
_shtab_b4_bugs_option_strings=(-h --help)
_shtab_b4_bugs_tui_option_strings=(-h --help --no-mouse --email-dry-run --no-sign)
_shtab_b4_bugs_import_option_strings=(-h --help --no-parent)
_shtab_b4_bugs_delete_option_strings=(-h --help)
_shtab_b4_bugs_refresh_option_strings=(-h --help)
_shtab_b4_bugs_list_option_strings=(-h --help --status --label)



_shtab_b4_pos_0_choices=(mbox am shazam review pr ty diff kr prep trailers send dig bugs)
_shtab_b4___print_completion_choices=(bash zsh tcsh fish)
_shtab_b4_review_pos_0_choices=(tui enroll track forget show-info cron)
_shtab_b4_bugs_pos_0_choices=(tui import delete refresh list)
_shtab_b4_bugs_list___status_choices=(open closed)

_shtab_b4_pos_0_nargs=A...
_shtab_b4__h_nargs=0
_shtab_b4___help_nargs=0
_shtab_b4___version_nargs=0
_shtab_b4__d_nargs=0
_shtab_b4___debug_nargs=0
_shtab_b4__q_nargs=0
_shtab_b4___quiet_nargs=0
_shtab_b4__n_nargs=0
_shtab_b4___no_interactive_nargs=0
_shtab_b4___offline_mode_nargs=0
_shtab_b4___no_stdin_nargs=0
_shtab_b4_mbox__h_nargs=0
_shtab_b4_mbox___help_nargs=0
_shtab_b4_mbox__C_nargs=0
_shtab_b4_mbox___no_cache_nargs=0
_shtab_b4_mbox___single_message_nargs=0
_shtab_b4_mbox___rethread_nargs=+
_shtab_b4_mbox__c_nargs=0
_shtab_b4_mbox___check_newer_revisions_nargs=0
_shtab_b4_mbox__M_nargs=0
_shtab_b4_mbox___save_as_maildir_nargs=0
_shtab_b4_mbox__f_nargs=0
_shtab_b4_mbox___filter_dupes_nargs=0
_shtab_b4_mbox___minimize_nargs=0
_shtab_b4_am__h_nargs=0
_shtab_b4_am___help_nargs=0
_shtab_b4_am__C_nargs=0
_shtab_b4_am___no_cache_nargs=0
_shtab_b4_am___single_message_nargs=0
_shtab_b4_am___rethread_nargs=+
_shtab_b4_am__c_nargs=0
_shtab_b4_am___check_newer_revisions_nargs=0
_shtab_b4_am__M_nargs=0
_shtab_b4_am___save_as_maildir_nargs=0
_shtab_b4_am__t_nargs=0
_shtab_b4_am___apply_cover_trailers_nargs=0
_shtab_b4_am__S_nargs=0
_shtab_b4_am___sloppy_trailers_nargs=0
_shtab_b4_am__T_nargs=0
_shtab_b4_am___no_add_trailers_nargs=0
_shtab_b4_am__s_nargs=0
_shtab_b4_am___add_my_sob_nargs=0
_shtab_b4_am__k_nargs=0
_shtab_b4_am___check_nargs=0
_shtab_b4_am___cc_trailers_nargs=0
_shtab_b4_am___no_parent_nargs=0
_shtab_b4_am___allow_unicode_control_chars_nargs=0
_shtab_b4_am__l_nargs=0
_shtab_b4_am___add_link_nargs=0
_shtab_b4_am__i_nargs=0
_shtab_b4_am___add_message_id_nargs=0
_shtab_b4_am__Q_nargs=0
_shtab_b4_am___quilt_ready_nargs=0
_shtab_b4_am__g_nargs=0
_shtab_b4_am___guess_base_nargs=0
_shtab_b4_am__b_nargs=+
_shtab_b4_am___guess_branch_nargs=+
_shtab_b4_am__3_nargs=0
_shtab_b4_am___prep_3way_nargs=0
_shtab_b4_am___no_cover_nargs=0
_shtab_b4_am___no_partial_reroll_nargs=0
_shtab_b4_shazam__h_nargs=0
_shtab_b4_shazam___help_nargs=0
_shtab_b4_shazam__C_nargs=0
_shtab_b4_shazam___no_cache_nargs=0
_shtab_b4_shazam___single_message_nargs=0
_shtab_b4_shazam___rethread_nargs=+
_shtab_b4_shazam__t_nargs=0
_shtab_b4_shazam___apply_cover_trailers_nargs=0
_shtab_b4_shazam__S_nargs=0
_shtab_b4_shazam___sloppy_trailers_nargs=0
_shtab_b4_shazam__T_nargs=0
_shtab_b4_shazam___no_add_trailers_nargs=0
_shtab_b4_shazam__s_nargs=0
_shtab_b4_shazam___add_my_sob_nargs=0
_shtab_b4_shazam__k_nargs=0
_shtab_b4_shazam___check_nargs=0
_shtab_b4_shazam___cc_trailers_nargs=0
_shtab_b4_shazam___no_parent_nargs=0
_shtab_b4_shazam___allow_unicode_control_chars_nargs=0
_shtab_b4_shazam__l_nargs=0
_shtab_b4_shazam___add_link_nargs=0
_shtab_b4_shazam__i_nargs=0
_shtab_b4_shazam___add_message_id_nargs=0
_shtab_b4_shazam__H_nargs=0
_shtab_b4_shazam___make_fetch_head_nargs=0
_shtab_b4_shazam__M_nargs=0
_shtab_b4_shazam___merge_nargs=0
_shtab_b4_shazam___resolve_nargs=0
_shtab_b4_review_pos_0_nargs=A...
_shtab_b4_review__h_nargs=0
_shtab_b4_review___help_nargs=0
_shtab_b4_review_tui__h_nargs=0
_shtab_b4_review_tui___help_nargs=0
_shtab_b4_review_tui___email_dry_run_nargs=0
_shtab_b4_review_tui___no_sign_nargs=0
_shtab_b4_review_tui___no_mouse_nargs=0
_shtab_b4_review_enroll__h_nargs=0
_shtab_b4_review_enroll___help_nargs=0
_shtab_b4_review_track__h_nargs=0
_shtab_b4_review_track___help_nargs=0
_shtab_b4_review_track___rethread_nargs=+
_shtab_b4_review_forget__h_nargs=0
_shtab_b4_review_forget___help_nargs=0
_shtab_b4_review_show_info__h_nargs=0
_shtab_b4_review_show_info___help_nargs=0
_shtab_b4_review_show_info__l_nargs=0
_shtab_b4_review_show_info___list_nargs=0
_shtab_b4_review_show_info__j_nargs=0
_shtab_b4_review_show_info___json_nargs=0
_shtab_b4_review_cron__h_nargs=0
_shtab_b4_review_cron___help_nargs=0
_shtab_b4_review_cron___update_nargs=0
_shtab_b4_review_cron___deliver_queue_nargs=0
_shtab_b4_review_cron___dry_run_nargs=0
_shtab_b4_review_cron___sign_nargs=0
_shtab_b4_pr__h_nargs=0
_shtab_b4_pr___help_nargs=0
_shtab_b4_pr__c_nargs=0
_shtab_b4_pr___check_nargs=0
_shtab_b4_pr__e_nargs=0
_shtab_b4_pr___explode_nargs=0
_shtab_b4_pr___dry_run_nargs=0
_shtab_b4_ty__h_nargs=0
_shtab_b4_ty___help_nargs=0
_shtab_b4_ty__l_nargs=0
_shtab_b4_ty___list_nargs=0
_shtab_b4_ty__a_nargs=0
_shtab_b4_ty___auto_nargs=0
_shtab_b4_ty__i_nargs=0
_shtab_b4_ty___interactive_nargs=0
_shtab_b4_ty__S_nargs=0
_shtab_b4_ty___send_email_nargs=0
_shtab_b4_ty___dry_run_nargs=0
_shtab_b4_ty___me_too_nargs=0
_shtab_b4_diff__h_nargs=0
_shtab_b4_diff___help_nargs=0
_shtab_b4_diff__C_nargs=0
_shtab_b4_diff___no_cache_nargs=0
_shtab_b4_diff__v_nargs=+
_shtab_b4_diff___compare_versions_nargs=+
_shtab_b4_diff__n_nargs=0
_shtab_b4_diff___no_diff_nargs=0
_shtab_b4_diff__c_nargs=0
_shtab_b4_diff___color_nargs=0
_shtab_b4_diff__m_nargs=2
_shtab_b4_diff___compare_am_mboxes_nargs=2
_shtab_b4_kr__h_nargs=0
_shtab_b4_kr___help_nargs=0
_shtab_b4_kr__C_nargs=0
_shtab_b4_kr___no_cache_nargs=0
_shtab_b4_kr___single_message_nargs=0
_shtab_b4_kr___rethread_nargs=+
_shtab_b4_kr___show_keys_nargs=0
_shtab_b4_prep__h_nargs=0
_shtab_b4_prep___help_nargs=0
_shtab_b4_prep__c_nargs=0
_shtab_b4_prep___auto_to_cc_nargs=0
_shtab_b4_prep___set_prefixes_nargs=+
_shtab_b4_prep___add_prefixes_nargs=+
_shtab_b4_prep__C_nargs=0
_shtab_b4_prep___no_cache_nargs=0
_shtab_b4_prep___edit_cover_nargs=0
_shtab_b4_prep___edit_deps_nargs=0
_shtab_b4_prep___check_deps_nargs=0
_shtab_b4_prep___check_nargs=0
_shtab_b4_prep___show_revision_nargs=0
_shtab_b4_prep___show_info_nargs='?'
_shtab_b4_prep___cleanup_nargs='*'
_shtab_b4_prep___claim_nargs='?'
_shtab_b4_prep__e_nargs='?'
_shtab_b4_prep___enroll_nargs='?'
_shtab_b4_trailers__h_nargs=0
_shtab_b4_trailers___help_nargs=0
_shtab_b4_trailers__u_nargs=0
_shtab_b4_trailers___update_nargs=0
_shtab_b4_trailers__i_nargs=0
_shtab_b4_trailers___interactive_nargs=0
_shtab_b4_trailers__S_nargs=0
_shtab_b4_trailers___sloppy_trailers_nargs=0
_shtab_b4_trailers___fuzzy_nargs=0
_shtab_b4_trailers__C_nargs=0
_shtab_b4_trailers___no_cache_nargs=0
_shtab_b4_trailers___single_message_nargs=0
_shtab_b4_trailers___rethread_nargs=+
_shtab_b4_send__h_nargs=0
_shtab_b4_send___help_nargs=0
_shtab_b4_send__d_nargs=0
_shtab_b4_send___dry_run_nargs=0
_shtab_b4_send___preview_to_nargs=+
_shtab_b4_send___reflect_nargs=0
_shtab_b4_send___no_trailer_to_cc_nargs=0
_shtab_b4_send___to_nargs=+
_shtab_b4_send___cc_nargs=+
_shtab_b4_send___not_me_too_nargs=0
_shtab_b4_send___resend_nargs='?'
_shtab_b4_send___no_sign_nargs=0
_shtab_b4_send___force_cover_letter_nargs=0
_shtab_b4_send___use_web_endpoint_nargs=0
_shtab_b4_send___web_auth_new_nargs=0
_shtab_b4_dig__h_nargs=0
_shtab_b4_dig___help_nargs=0
_shtab_b4_dig__C_nargs=0
_shtab_b4_dig___no_cache_nargs=0
_shtab_b4_dig__a_nargs=0
_shtab_b4_dig___all_series_nargs=0
_shtab_b4_dig__w_nargs=0
_shtab_b4_dig___who_nargs=0
_shtab_b4_bugs_pos_0_nargs=A...
_shtab_b4_bugs__h_nargs=0
_shtab_b4_bugs___help_nargs=0
_shtab_b4_bugs_tui__h_nargs=0
_shtab_b4_bugs_tui___help_nargs=0
_shtab_b4_bugs_tui___no_mouse_nargs=0
_shtab_b4_bugs_tui___email_dry_run_nargs=0
_shtab_b4_bugs_tui___no_sign_nargs=0
_shtab_b4_bugs_import__h_nargs=0
_shtab_b4_bugs_import___help_nargs=0
_shtab_b4_bugs_import___no_parent_nargs=0
_shtab_b4_bugs_delete__h_nargs=0
_shtab_b4_bugs_delete___help_nargs=0
_shtab_b4_bugs_refresh__h_nargs=0
_shtab_b4_bugs_refresh___help_nargs=0
_shtab_b4_bugs_list__h_nargs=0
_shtab_b4_bugs_list___help_nargs=0


# $1=COMP_WORDS[1]
_shtab_compgen_files() {
  compgen -f -- $1  # files
}

# $1=COMP_WORDS[1]
_shtab_compgen_dirs() {
  compgen -d -- $1  # recurse into subdirs
}

# $1=COMP_WORDS[1]
_shtab_replace_nonword() {
  echo "${1//[^[:word:]]/_}"
}

# set default values (called for the initial parser & any subparsers)
_set_parser_defaults() {
  local subparsers_var="${prefix}_subparsers[@]"
  sub_parsers=${!subparsers_var-}

  local current_option_strings_var="${prefix}_option_strings[@]"
  current_option_strings=${!current_option_strings_var}

  completed_positional_actions=0

  _set_new_action "pos_${completed_positional_actions}" true
}

# $1=action identifier
# $2=positional action (bool)
# set all identifiers for an action's parameters
_set_new_action() {
  current_action="${prefix}_$(_shtab_replace_nonword $1)"

  local current_action_compgen_var=${current_action}_COMPGEN
  current_action_compgen="${!current_action_compgen_var-}"

  local current_action_choices_var="${current_action}_choices[@]"
  current_action_choices="${!current_action_choices_var-}"

  local current_action_nargs_var="${current_action}_nargs"
  if [ -n "${!current_action_nargs_var-}" ]; then
    current_action_nargs="${!current_action_nargs_var}"
  else
    current_action_nargs=1
  fi

  current_action_args_start_index=$(( $word_index + 1 - $pos_only ))

  current_action_is_positional=$2
}

# Notes:
# `COMPREPLY`: what will be rendered after completion is triggered
# `completing_word`: currently typed word to generate completions for
# `${!var}`: evaluates the content of `var` and expand its content as a variable
#     hello="world"
#     x="hello"
#     ${!x} -> ${hello} -> "world"
_shtab_b4() {
  local completing_word="${COMP_WORDS[COMP_CWORD]}"
  local previous_word="${COMP_WORDS[COMP_CWORD-1]}"
  local completed_positional_actions
  local current_action
  local current_action_args_start_index
  local current_action_choices
  local current_action_compgen
  local current_action_is_positional
  local current_action_nargs
  local current_option_strings
  local sub_parsers
  COMPREPLY=()

  local prefix=_shtab_b4
  local word_index=0
  local pos_only=0 # "--" delimiter not encountered yet
  _set_parser_defaults
  word_index=1

  # determine what arguments are appropriate for the current state
  # of the arg parser
  while [ $word_index -ne $COMP_CWORD ]; do
    local this_word="${COMP_WORDS[$word_index]}"

    if [[ $pos_only = 1 || " $this_word " != " -- " ]]; then
      if [[ -n $sub_parsers && " ${sub_parsers[@]} " == *" ${this_word} "* ]]; then
        # valid subcommand: add it to the prefix & reset the current action
        prefix="${prefix}_$(_shtab_replace_nonword $this_word)"
        _set_parser_defaults
      fi

      if [[ " ${current_option_strings[@]} " == *" ${this_word} "* ]]; then
        # a new action should be acquired (due to recognised option string or
        # no more input expected from current action);
        # the next positional action can fill in here
        _set_new_action $this_word false
      fi

      if [[ "$current_action_nargs" != "*" ]] && \
         [[ "$current_action_nargs" != "+" ]] && \
         [[ "$current_action_nargs" != "?" ]] && \
         [[ "$current_action_nargs" != *"..." ]] && \
         (( $word_index + 1 - $current_action_args_start_index - $pos_only >= \
            $current_action_nargs )); then
        $current_action_is_positional && let "completed_positional_actions += 1"
        _set_new_action "pos_${completed_positional_actions}" true
      fi
    else
      pos_only=1 # "--" delimiter encountered
    fi

    let "word_index+=1"
  done

  # Generate the completions

  if [[ $pos_only = 0 && "${completing_word}" == -* ]]; then
    # optional argument started: use option strings
    mapfile -t COMPREPLY < <(compgen -W "${current_option_strings[*]}" -- "${completing_word}")
  elif [[ "${previous_word}" == ">" || "${previous_word}" == ">>" ||
          "${previous_word}" =~ ^[12]">" || "${previous_word}" =~ ^[12]">>" ]]; then
    # handle redirection operators
    mapfile -t COMPREPLY < <(compgen -f -- "${completing_word}")
  else
    # use choices & compgen
    [ -n "${current_action_compgen}" ] &&
      mapfile -t COMPREPLY < <("${current_action_compgen}" "${completing_word}")
    mapfile -t -O "${#COMPREPLY[@]}" COMPREPLY < <(
      compgen -W "${current_action_choices[*]}" -- "${completing_word}")
  fi

  return 0
}

complete -o filenames -F _shtab_b4 b4
