�
E��cVR � � � d Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddlm Z ddlm
Z
ddlmZ ddlmZ ddl
Z
dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm!Z! ddl"m#Z# ddl"m$Z$ ddl%m&Z' ddl(m)Z) ddl*m+Z+ G d� d� � Z,dS ) z$Certbot command line argument parser� N)�Any)�Dict)�Iterable)�List)�Optional)�Union)�crypto_util)�errors)�util)� constants)�hooks)�ARGPARSE_PARAMS_TO_REMOVE)�COMMAND_OVERVIEW)�EXIT_ACTIONS)�HELP_AND_VERSION_USAGE)�SHORT_USAGE)�ZERO_ARG_ACTIONS)�_Default)�add_domains)�CustomHelpFormatter)�flag_default)�HelpfulArgumentGroup)� VERB_HELP)�
VERB_HELP_MAP)�obj)�disco)�osc �. � e Zd ZdZ d$dee dee deddfd�Zg d �Z defd
�Z
dee deeef defd�Zd
e
j ddfd�Zde
j fd�Zd
e
j ddfd�Zd
e
j ddfd�Zd%d�Zdedeee deeef fd�Zdeeeee ef dededdfd�Zdedeeef fd�Zdededdfd�Zd&dedee dedefd �Zdej ddfd!�Z d"eeef deee ef fd#�Z!dS )'�HelpfulArgumentParserz�Argparse Wrapper.
This class wraps argparse, adding the ability to make --help less
verbose, and request help on specific subcategories at a time, eg
'certbot --help security' for security options.
F�args�plugins�detect_defaults�returnNc � � ddl m} i d|j �d|j �d|j �d|j �d|j �d|j �d |j �d
|j �d|j �d|j
�d
|j �d|j �d|j �d|j
�d|j �d|j �d|j �| _ t% j t( j � � j | _ g d�}|t1 | j � � | j z dgz z
}t1 |� � }||z d gz | _ || _ || _ | j r| j d dk r
d| j d< |