_eim() {
    local i cur prev opts cmd
    COMPREPLY=()
    if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
        cur="$2"
    else
        cur="${COMP_WORDS[COMP_CWORD]}"
    fi
    prev="$3"
    cmd=""
    opts=""

    for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
    do
        case "${cmd},${i}" in
            ",$1")
                cmd="eim"
                ;;
            eim,completions)
                cmd="eim__subcmd__completions"
                ;;
            eim,discover)
                cmd="eim__subcmd__discover"
                ;;
            eim,fix)
                cmd="eim__subcmd__fix"
                ;;
            eim,help)
                cmd="eim__subcmd__help"
                ;;
            eim,help-json)
                cmd="eim__subcmd__help__subcmd__json"
                ;;
            eim,import)
                cmd="eim__subcmd__import"
                ;;
            eim,install)
                cmd="eim__subcmd__install"
                ;;
            eim,install-drivers)
                cmd="eim__subcmd__install__subcmd__drivers"
                ;;
            eim,list)
                cmd="eim__subcmd__list"
                ;;
            eim,list-features)
                cmd="eim__subcmd__list__subcmd__features"
                ;;
            eim,list-tools)
                cmd="eim__subcmd__list__subcmd__tools"
                ;;
            eim,purge)
                cmd="eim__subcmd__purge"
                ;;
            eim,remove)
                cmd="eim__subcmd__remove"
                ;;
            eim,rename)
                cmd="eim__subcmd__rename"
                ;;
            eim,run)
                cmd="eim__subcmd__run"
                ;;
            eim,select)
                cmd="eim__subcmd__select"
                ;;
            eim,wizard)
                cmd="eim__subcmd__wizard"
                ;;
            eim__subcmd__help,completions)
                cmd="eim__subcmd__help__subcmd__completions"
                ;;
            eim__subcmd__help,discover)
                cmd="eim__subcmd__help__subcmd__discover"
                ;;
            eim__subcmd__help,fix)
                cmd="eim__subcmd__help__subcmd__fix"
                ;;
            eim__subcmd__help,help)
                cmd="eim__subcmd__help__subcmd__help"
                ;;
            eim__subcmd__help,help-json)
                cmd="eim__subcmd__help__subcmd__help__subcmd__json"
                ;;
            eim__subcmd__help,import)
                cmd="eim__subcmd__help__subcmd__import"
                ;;
            eim__subcmd__help,install)
                cmd="eim__subcmd__help__subcmd__install"
                ;;
            eim__subcmd__help,install-drivers)
                cmd="eim__subcmd__help__subcmd__install__subcmd__drivers"
                ;;
            eim__subcmd__help,list)
                cmd="eim__subcmd__help__subcmd__list"
                ;;
            eim__subcmd__help,list-features)
                cmd="eim__subcmd__help__subcmd__list__subcmd__features"
                ;;
            eim__subcmd__help,list-tools)
                cmd="eim__subcmd__help__subcmd__list__subcmd__tools"
                ;;
            eim__subcmd__help,purge)
                cmd="eim__subcmd__help__subcmd__purge"
                ;;
            eim__subcmd__help,remove)
                cmd="eim__subcmd__help__subcmd__remove"
                ;;
            eim__subcmd__help,rename)
                cmd="eim__subcmd__help__subcmd__rename"
                ;;
            eim__subcmd__help,run)
                cmd="eim__subcmd__help__subcmd__run"
                ;;
            eim__subcmd__help,select)
                cmd="eim__subcmd__help__subcmd__select"
                ;;
            eim__subcmd__help,wizard)
                cmd="eim__subcmd__help__subcmd__wizard"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        eim)
            opts="-l -v -h -V --locale --verbose --log-file --do-not-track --esp-idf-json-path --help --version install list list-tools list-features select discover remove rename run import purge wizard fix install-drivers completions help-json help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --locale)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --log-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__completions)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help bash elvish fish powershell zsh"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__discover)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__fix)
            opts="-p -c -t -i -n -m -v -l -r -a -h --path --config --target --idf-versions --tool-download-folder-name --tool-install-folder-name --tools-json-file --non-interactive --mirror --idf-mirror --pypi-mirror --verbose --locale --log-file --recurse-submodules --install-all-prerequisites --config-file-save-path --idf-features --idf-tools --repo-stub --skip-prerequisites-check --version-name --cleanup --python-env-folder-name --use-local-archive --activation-script-path-override --python-version-override --create-bat-activation-script --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --config)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -c)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-versions)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -i)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-download-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-install-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tools-json-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --non-interactive)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -n)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -m)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pypi-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --locale)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --log-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --recurse-submodules)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -r)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --install-all-prerequisites)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -a)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --config-file-save-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-features)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-tools)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --repo-stub)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --skip-prerequisites-check)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --version-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --cleanup)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --python-env-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --use-local-archive)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --activation-script-path-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --python-version-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --create-bat-activation-script)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help)
            opts="install list list-tools list-features select discover remove rename run import purge wizard fix install-drivers completions help-json help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__json)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__completions)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__discover)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__fix)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__help)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__help__subcmd__json)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__import)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__install)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__install__subcmd__drivers)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__list)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__list__subcmd__features)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__list__subcmd__tools)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__purge)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__remove)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__rename)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__run)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__select)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__help__subcmd__wizard)
            opts=""
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__import)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help [PATH]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__install)
            opts="-p -c -t -i -n -m -v -l -r -a -h --path --config --target --idf-versions --tool-download-folder-name --tool-install-folder-name --tools-json-file --non-interactive --mirror --idf-mirror --pypi-mirror --verbose --locale --log-file --recurse-submodules --install-all-prerequisites --config-file-save-path --idf-features --idf-tools --repo-stub --skip-prerequisites-check --version-name --cleanup --python-env-folder-name --use-local-archive --activation-script-path-override --python-version-override --create-bat-activation-script --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --config)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -c)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-versions)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -i)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-download-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-install-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tools-json-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --non-interactive)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -n)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -m)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pypi-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --locale)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --log-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --recurse-submodules)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -r)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --install-all-prerequisites)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -a)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --config-file-save-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-features)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-tools)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --repo-stub)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --skip-prerequisites-check)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --version-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --cleanup)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --python-env-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --use-local-archive)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --activation-script-path-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --python-version-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --create-bat-activation-script)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__install__subcmd__drivers)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__list)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__list__subcmd__features)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help [IDENTIFIER]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__list__subcmd__tools)
            opts="-v -h --outdated --verbose --do-not-track --esp-idf-json-path --help [IDENTIFIER]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__purge)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__remove)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help [VERSION]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__rename)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help [VERSION] [NEW_NAME]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__run)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help <COMMAND> [IDF]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__select)
            opts="-v -h --verbose --do-not-track --esp-idf-json-path --help [VERSION]"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
        eim__subcmd__wizard)
            opts="-p -c -t -i -n -m -v -l -r -a -h --path --config --target --idf-versions --tool-download-folder-name --tool-install-folder-name --tools-json-file --non-interactive --mirror --idf-mirror --pypi-mirror --verbose --locale --log-file --recurse-submodules --install-all-prerequisites --config-file-save-path --idf-features --idf-tools --repo-stub --skip-prerequisites-check --version-name --cleanup --python-env-folder-name --use-local-archive --activation-script-path-override --python-version-override --create-bat-activation-script --do-not-track --esp-idf-json-path --help"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -p)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --config)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -c)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --target)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-versions)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -i)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-download-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tool-install-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --tools-json-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --non-interactive)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -n)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -m)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pypi-mirror)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --locale)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --log-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --recurse-submodules)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -r)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --install-all-prerequisites)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                -a)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --config-file-save-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-features)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --idf-tools)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --repo-stub)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --skip-prerequisites-check)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --version-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --cleanup)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --python-env-folder-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --use-local-archive)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --activation-script-path-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --python-version-override)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --create-bat-activation-script)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --do-not-track)
                    COMPREPLY=($(compgen -W "true false" -- "${cur}"))
                    return 0
                    ;;
                --esp-idf-json-path)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}

if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
    complete -F _eim -o nosort -o bashdefault -o default eim
else
    complete -F _eim -o bashdefault -o default eim
fi
