§
    Á³gíE  ã            	       óÞ  — d Z ddlZddlZddlZddlZddlmZmZ dZ ej	        dez  ¦  «        Z
 ej	        d                     ee¦  «        ¦  «        Ze                     dd	¦  «        Z G d
„ d¦  «        Zd„ Zd„ ej        D ¦   «         Zd„ Zd„ Z G d„ d¦  «        Zedk    rGdZdD ]DZ edez  ¦  «          ed                      eee¦  «        ¦  «        ¦  «          e¦   «          ŒCdS dS )a6  distutils.fancy_getopt

Wrapper around the standard getopt module that provides the following
additional features:
  * short and long options are tied together
  * options have help strings, so fancy_getopt could potentially
    create a complete usage summary
  * options set attributes of a passed-in object
é    Né   )ÚDistutilsGetoptErrorÚDistutilsArgErrorz[a-zA-Z](?:[a-zA-Z0-9-]*)z^%s$z^({})=!({})$ú-Ú_c                   óp   — e Zd ZdZdd„Zd„ Zd„ Zdd„Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zdd„Zd„ Zdd„Zdd„ZdS )ÚFancyGetoptaÕ  Wrapper around the standard 'getopt()' module that provides some
    handy extra functionality:
      * short and long options are tied together
      * options have help strings, and help text can be assembled
        from them
      * options set attributes of a passed-in object
      * boolean options can have "negative aliases" -- eg. if
        --quiet is the "negative alias" of --verbose, then "--quiet"
        on the command line sets 'verbose' to false
    Nc                 óÈ   — || _         i | _        | j         r|                      ¦   «          i | _        i | _        g | _        g | _        i | _        i | _        i | _	        g | _
        d S ©N)Úoption_tableÚoption_indexÚ_build_indexÚaliasÚnegative_aliasÚ
short_optsÚ	long_optsÚ
short2longÚ	attr_nameÚ	takes_argÚoption_order©Úselfr   s     ú`/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/setuptools/_distutils/fancy_getopt.pyÚ__init__zFancyGetopt.__init__,   s{   € ð )ˆÔð ˆÔØÔð 	 Ø×ÒÑÔÐð ˆŒ
ð !ˆÔð ˆŒØˆŒØˆŒØˆŒØˆŒð
 ˆÔÐÐó    c                 ól   — | j                              ¦   «          | j        D ]}|| j         |d         <   Œd S )Nr   )r   Úclearr   )r   Úoptions     r   r   zFancyGetopt._build_indexT   sG   € ØÔ×ÒÑ!Ô!Ð!ØÔ'ð 	2ð 	2ˆFØ+1ˆDÔ˜f QœiÑ(Ð(ð	2ð 	2r   c                 ó<   — || _         |                      ¦   «          d S r   )r   r   r   s     r   Úset_option_tablezFancyGetopt.set_option_tableY   s"   € Ø(ˆÔØ×ÒÑÔÐÐÐr   c                 óŽ   — || j         v rt          d|z  ¦  «        ‚|||f}| j                             |¦  «         || j         |<   d S )Nz'option conflict: already an option '%s')r   r   r   Úappend)r   Úlong_optionÚshort_optionÚhelp_stringr   s        r   Ú
add_optionzFancyGetopt.add_option]   sb   € Ø˜$Ô+Ð+Ð+Ý&Ø9¸KÑGñô ð ð " <°Ð=ˆFØÔ×$Ò$ VÑ,Ô,Ð,Ø-3ˆDÔ˜kÑ*Ð*Ð*r   c                 ó   — || j         v S )zcReturn true if the option table for this parser has an
        option with long name 'long_option'.)r   ©r   r#   s     r   Ú
has_optionzFancyGetopt.has_optiong   s   € ð ˜dÔ/Ð/Ð/r   c                 ó6   — |                      t          ¦  «        S )z’Translate long option name 'long_option' to the form it
        has as an attribute of some object: ie., translate hyphens
        to underscores.©Ú	translateÚlongopt_xlater(   s     r   Úget_attr_namezFancyGetopt.get_attr_namel   s   € ð ×$Ò$¥]Ñ3Ô3Ð3r   c           
      óð   — t          |t          ¦  «        sJ ‚|                     ¦   «         D ]I\  }}|| j        vrt	          d|›d|›d|›d�¦  «        ‚|| j        vrt	          d|›d|›d|›d�¦  «        ‚ŒJd S )Nzinvalid z 'z': option 'z' not definedú': aliased option ')Ú
isinstanceÚdictÚitemsr   r   )r   ÚaliasesÚwhatr   Úopts        r   Ú_check_alias_dictzFancyGetopt._check_alias_dictr   sº   € Ý˜'¥4Ñ(Ô(Ð(Ð(Ð(Ø#ŸMšM™OœOð 
	ð 
	‰LˆU�CØ˜DÔ-Ð-Ð-Ý*Ð*à�t�t˜U˜U˜U E E Eð+ñô ð ð ˜$Ô+Ð+Ð+Ý*Ð*à�t�t˜U˜U˜U C C Cð)ñô ð ð ,ð
	ð 
	r   c                 ó@   — |                       |d¦  «         || _        dS )z'Set the aliases for this option parser.r   N)r7   r   )r   r   s     r   Úset_aliaseszFancyGetopt.set_aliases€   s#   € à×Ò˜u gÑ.Ô.Ð.ØˆŒ
ˆ
ˆ
r   c                 ó@   — |                       |d¦  «         || _        dS )zÚSet the negative aliases for this option parser.
        'negative_alias' should be a dictionary mapping option names to
        option names, both the key and value must already be defined
        in the option table.znegative aliasN)r7   r   )r   r   s     r   Úset_negative_aliasesz FancyGetopt.set_negative_aliases…   s)   € ð
 	×Ò˜~Ð/?Ñ@Ô@Ð@Ø,ˆÔÐÐr   c                 óÜ  — g | _         g | _        | j                             ¦   «          i | _        | j        D �]4}t          |¦  «        dk    r	|\  }}}d}n=t          |¦  «        dk    r|\  }}}}n"t          d                     |¦  «        ¦  «        ‚t          |t          ¦  «        rt          |¦  «        dk     rt          d|z  ¦  «        ‚|�:t          |t          ¦  «        rt          |¦  «        dk    st          d	|z  ¦  «        ‚|| j        |<   | j                              |¦  «         |d
         dk    r|r|dz   }|dd
…         }d| j        |<   nS| j                             |¦  «        }|�-| j        |         rt          d|›d|›d�¦  «        ‚|| j         d
<   d| j        |<   | j                             |¦  «        }|�2| j        |         | j        |         k    rt          d|›d|›d�¦  «        ‚t"                               |¦  «        st          d|z  ¦  «        ‚|                      |¦  «        | j        |<   |r*| j                             |¦  «         || j        |d         <   �Œ6dS )z�Populate the various data structures that keep tabs on the
        option table.  Called by 'getopt()' before it can do anything
        worthwhile.
        é   r   é   zinvalid option tuple: {!r}é   z9invalid long option '%s': must be a string of length >= 2Nr   z:invalid short option '%s': must a single character or Noneéÿÿÿÿú=ú:zinvalid negative alias 'r0   z' takes a valuezinvalid alias 'z%': inconsistent with aliased option 'z/' (one of them takes a value, the other doesn'tzEinvalid long option name '%s' (must be letters, numbers, hyphens only)r   r   r   r   Úrepeatr   ÚlenÚ
ValueErrorÚformatr1   Ústrr   r"   r   r   Úgetr   Ú
longopt_reÚmatchr.   r   )r   r   ÚlongÚshortÚhelprC   Úalias_tos          r   Ú_grok_option_tablezFancyGetopt._grok_option_table�   sá  € ð
 ˆŒØˆŒØŒ×ÒÑÔÐØˆŒàÔ'ð F	1ñ F	1ˆFÝ�6‰{Œ{˜aÒÐØ$*Ñ!��e˜TØ��Ý�V‘” Ò!Ð!Ø,2Ñ)��e˜T 6 6õ !Ð!=×!DÒ!DÀVÑ!LÔ!LÑMÔMÐMõ ˜d¥CÑ(Ô(ð ­C°©I¬I¸ªM¨MÝ*ØSØññô ð ð
 �]­
°5½#Ñ(>Ô(>�]Å3ÀuÁ:Ä:ÐQRÂ?À?Ý*ð6Ø8=ñ>ñô ð ð
 !'ˆDŒK˜ÑØŒN×!Ò! $Ñ'Ô'Ð'à�BŒx˜3ŠˆØð (Ø! C™K�EØ˜A˜b˜D”z�Ø'(�”˜tÑ$Ð$ð  Ô.×2Ò2°4Ñ8Ô8�ØÐ'Ø”~ hÔ/ð Ý2Ð2àCGÀ4À4ÈÈÈðSñô ð ð
 *.�D”N 2Ñ&Ø'(�”˜tÑ$ð ”z—~’~ dÑ+Ô+ˆHØÐ#Ø”> $Ô'¨4¬>¸(Ô+CÒCÐCÝ.Ð.ð 04¨t¨t°X°X°Xð?ñô ð õ ×#Ò# DÑ)Ô)ð Ý*ð>Ø@DñEñô ð ð
 $(×#5Ò#5°dÑ#;Ô#;ˆDŒN˜4Ñ Øð 1Ø”×&Ò& uÑ-Ô-Ð-Ø,0�”  a¤Ñ)ùðMF	1ð F	1r   c                 ó´  — |€t           j        dd…         }|€t          ¦   «         }d}nd}|                      ¦   «          d                     | j        ¦  «        }	 t          j        ||| j        ¦  «        \  }}n&# t          j        $ r}t          |¦  «        ‚d}~ww xY w|D �].\  }}t          |¦  «        dk    r |d         dk    r| j        |d                  }n-t          |¦  «        dk    r|dd…         d	k    sJ ‚|dd…         }| j                             |¦  «        }	|	r|	}| j        |         s3|d
k    s
J d¦   «         ‚| j                             |¦  «        }	|	r|	}d}nd}| j        |         }
|r.| j                             |
¦  «        �t%          ||
d¦  «        dz   }t'          ||
|¦  «         | j                             ||f¦  «         �Œ0|r||fS |S )a  Parse command-line options in args. Store as attributes on object.

        If 'args' is None or not supplied, uses 'sys.argv[1:]'.  If
        'object' is None or not supplied, creates a new OptionDummy
        object, stores option values there, and returns a tuple (args,
        object).  If 'object' is supplied, it is modified in place and
        'getopt()' just returns 'args'; in both cases, the returned
        'args' is a modified copy of the passed-in 'args' list, which
        is left untouched.
        Nr   TFú r?   r   r   z--Ú zboolean option can't have value)ÚsysÚargvÚOptionDummyrO   Újoinr   Úgetoptr   Úerrorr   rD   r   r   rH   r   r   r   rC   ÚgetattrÚsetattrr   r"   )r   ÚargsÚobjectÚcreated_objectr   ÚoptsÚmsgr6   Úvalr   Úattrs              r   rW   zFancyGetopt.getoptß   s  € ð ˆ<Ý”8˜A˜B˜B”<ˆDØˆ>Ý ‘]”]ˆFØ!ˆNˆNà"ˆNà×ÒÑ!Ô!Ð!à—X’X˜dœoÑ.Ô.ˆ
ð	)Ýœ t¨Z¸¼ÑHÔH‰JˆD�$�$øÝŒ|ð 	)ð 	)ð 	)Ý# CÑ(Ô(Ð(øøøøð	)øøøð ð 	1ñ 	1‰HˆC�Ý�3‰xŒx˜1Š}ˆ}  Q¤¨3¢ Ø”o c¨!¤fÔ-��å˜3‘x”x !’|�|¨¨B¨Q¨B¬°4ª¨¨¨Ø˜!˜"˜"”g�à”J—N’N 3Ñ'Ô'ˆEØð Ø�à”> #Ô&ð Ø˜b’y�y�yÐ"C‘y”y�yØÔ+×/Ò/°Ñ4Ô4�Øð Ø�CØ�C�Cà�Cà”> #Ô&ˆDð ð 3�t”{—’ tÑ,Ô,Ð8Ý˜f d¨AÑ.Ô.°Ñ2�Ý�F˜D #Ñ&Ô&Ð&ØÔ×$Ò$ c¨3 ZÑ0Ô0Ð0Ñ0ð ð 	Ø˜�<ÐàˆKs   ÁA: Á:BÂ	BÂBc                 ó<   — | j         €t          d¦  «        ‚| j         S )z«Returns the list of (option, value) tuples processed by the
        previous run of 'getopt()'.  Raises RuntimeError if
        'getopt()' hasn't been called yet.
        Nz!'getopt()' hasn't been called yet)r   ÚRuntimeError)r   s    r   Úget_option_orderzFancyGetopt.get_option_order  s%   € ð
 ÔÐ$ÝÐBÑCÔCÐCàÔ$Ð$r   c                 óÈ  — d}| j         D ]A}|d         }|d         }t          |¦  «        }|d         dk    r|dz
  }|�|dz   }||k    r|}ŒB|dz   dz   dz   }d}||z
  }	d	|z  }
|r|g}nd
g}| j         D ]î}|dd…         \  }}}t          ||	¦  «        }|d         dk    r
|dd…         }|€?|r"|                     d|||d         fz  ¦  «         nm|                     d||fz  ¦  «         nRd                     ||¦  «        }|r"|                     d|||d         fz  ¦  «         n|                     d|z  ¦  «         |dd…         D ]}|                     |
|z   ¦  «         ŒŒï|S )zŒGenerate help text (a list of strings, one per suggested line of
        output) from the option table for this FancyGetopt object.
        r   r   r@   rA   Né   r?   éN   rQ   zOption summary:r=   z  --%-*s  %sz
  --%-*s  z{} (-{})z  --%-*s)r   rD   Ú	wrap_textr"   rF   )r   ÚheaderÚmax_optr   rK   rL   ÚellÚ	opt_widthÚ
line_widthÚ
text_widthÚ
big_indentÚlinesrM   ÚtextÚ	opt_namess                  r   Úgenerate_helpzFancyGetopt.generate_help&  sé  € ð ˆØÔ'ð 		ð 		ˆFØ˜!”9ˆDØ˜1”IˆEÝ�d‘)”)ˆCØ�BŒx˜3ŠˆØ˜A‘g�ØÐ Ø˜A‘g�Ø�WŠ}ˆ}Ø�øà˜a‘K !‘O aÑ'ˆ	ð0 ˆ
Ø )Ñ+ˆ
Ø˜9‘_ˆ
Øð 	(Ø�HˆEˆEà&Ð'ˆEàÔ'ð 	/ð 	/ˆFØ & r¨ r¤
ÑˆD�%˜Ý˜T :Ñ.Ô.ˆDØ�BŒx˜3ŠˆØ˜A˜b˜D”z�ð ˆ}Øð AØ—L’L °7¸DÀ$ÀqÄ'Ð2JÑ!JÑKÔKÐKÐKà—L’L °¸$°Ñ!?Ñ@Ô@Ð@Ð@ð
 '×-Ò-¨d°EÑ:Ô:�	Øð 9Ø—L’L °7¸IÀtÈAÄwÐ2OÑ!OÑPÔPÐPÐPà—L’L ¨iÑ!7Ñ8Ô8Ð8à˜A˜B˜B”xð /ð /�Ø—’˜Z¨#Ñ-Ñ.Ô.Ð.Ð.ð/àˆr   c                 ó‚   — |€t           j        }|                      |¦  «        D ]}|                     |dz   ¦  «         Œd S )Nú
)rS   Ústdoutrs   Úwrite)r   ri   ÚfileÚlines       r   Ú
print_helpzFancyGetopt.print_helpt  sN   € Øˆ<Ý”:ˆDØ×&Ò& vÑ.Ô.ð 	$ð 	$ˆDØ�JŠJ�t˜d‘{Ñ#Ô#Ð#Ð#ð	$ð 	$r   r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    r&   r)   r.   r7   r9   r;   rO   rW   rd   rs   rz   © r   r   r	   r	       s  € € € € € ð	ð 	ð&ð &ð &ð &ðP2ð 2ð 2ð
ð ð ð4ð 4ð 4ð 4ð0ð 0ð 0ð
4ð 4ð 4ðð ð ðð ð ð
-ð -ð -ðP1ð P1ð P1ðd;ð ;ð ;ð ;ðz%ð %ð %ðLð Lð Lð Lð\$ð $ð $ð $ð $ð $r   r	   c                 óv   — t          | ¦  «        }|                     |¦  «         |                     ||¦  «        S r   )r	   r;   rW   )ÚoptionsÚnegative_optr\   r[   Úparsers        r   Úfancy_getoptr„   {  s7   € Ý˜Ñ!Ô!€FØ
×Ò Ñ-Ô-Ð-Ø�=Š=˜˜vÑ&Ô&Ð&r   c                 ó.   — i | ]}t          |¦  «        d “ŒS )rQ   )Úord)Ú.0Ú_wschars     r   ú
<dictcomp>r‰   �  s    € Ð?Ð?Ð? '�C�‰LŒL˜#Ð?Ð?Ð?r   c                 óž  — | €g S t          | ¦  «        |k    r| gS |                      ¦   «         } |                      t          ¦  «        } t	          j        d| ¦  «        }d„ |D ¦   «         }g }|rßg }d}|r\t          |d         ¦  «        }||z   |k    r$|                     |d         ¦  «         |d= ||z   }n|r|d         d         dk    r|d= n|°\|rQ|dk    r6|                     |d         d|…         ¦  «         |d         |d…         |d<   |d         d         dk    r|d= |                     d                     |¦  «        ¦  «         |°ß|S )z¶wrap_text(text : string, width : int) -> [string]

    Split 'text' into multiple lines of no more than 'width' characters
    each, and return the list of strings that results.
    Nz( +|-+)c                 ó   — g | ]}|¯|‘ŒS r   r   )r‡   Úchs     r   ú
<listcomp>zwrap_text.<locals>.<listcomp>’  s   € Ð(Ð(Ð(�R RÐ(ˆbÐ(Ð(Ð(r   r   r@   rQ   rR   )rD   Ú
expandtabsr,   ÚWS_TRANSÚreÚsplitr"   rV   )rq   ÚwidthÚchunksrp   Úcur_lineÚcur_lenrk   s          r   rh   rh   „  s˜  € ð €|Øˆ	Ý
ˆ4�y„y�EÒÐØˆvˆà�?Š?ÑÔ€DØ�>Š>�(Ñ#Ô#€DÝŒX�j $Ñ'Ô'€FØ(Ð(˜6Ð(Ñ(Ô(€FØ€Eà
ð  (ØˆØˆàð 
	Ý�f˜Q”i‘.”.ˆCØ˜‰} Ò%Ð%Ø—’  q¤	Ñ*Ô*Ð*Ø˜1�IØ! C™-��ð ð % ¨¤¨Q¤°3Ò 6Ð 6Ø  ˜Øð ð 
	ð ð 	ð ˜!Š|ˆ|Ø—’  q¤	¨!¨E¨'Ô 2Ñ3Ô3Ð3Ø" 1œI e f fÔ-��q‘	ð
 �aŒy˜Œ|˜sÒ"Ð"Ø˜1�Ið 	�Š�R—W’W˜XÑ&Ô&Ñ'Ô'Ð'ðA ð  (ðD €Lr   c                 ó6   — |                       t          ¦  «        S )zXConvert a long option name to a valid Python identifier by
    changing "-" to "_".
    r+   )r6   s    r   Útranslate_longoptr—   º  s   € ð �=Š=�Ñ'Ô'Ð'r   c                   ó   — e Zd ZdZg fd„ZdS )rU   z_Dummy class just used as a place to hold command-line option
    values as instance attributes.c                 ó2   — |D ]}t          | |d¦  «         ŒdS )zkCreate a new OptionDummy instance.  The attributes listed in
        'options' will be initialized to None.N)rZ   )r   r�   r6   s      r   r   zOptionDummy.__init__Å  s2   € ð ð 	%ð 	%ˆCÝ�D˜#˜tÑ$Ô$Ð$Ð$ð	%ð 	%r   N)r{   r|   r}   r~   r   r   r   r   rU   rU   Á  s7   € € € € € ð&ð &ð  "ð %ð %ð %ð %ð %ð %r   rU   Ú__main__z¢Tra-la-la, supercalifragilisticexpialidocious.
How *do* you spell that odd word, anyways?
(Someone ask Mary -- she'll know [or she'll
say, "How should I know?"].))é
   é   é   é(   z	width: %dru   )r~   rS   Ústringr�   rW   Úerrorsr   r   Úlongopt_patÚcompilerI   rF   Úneg_alias_rerG   Ú	maketransr-   r	   r„   Ú
whitespacer�   rh   r—   rU   r{   rq   ÚwÚprintrV   r   r   r   ú<module>r¨      sÂ  ððð ð €
€
€
Ø €€€Ø 	€	€	€	Ø €€€Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;ð +€ØˆRŒZ˜ +Ñ-Ñ.Ô.€
ð ˆrŒz˜.×/Ò/°¸[ÑIÔIÑJÔJ€ð —’˜c 3Ñ'Ô'€ðX$ð X$ð X$ð X$ð X$ñ X$ô X$ð X$ðv
'ð 'ð 'ð @Ð?¨VÔ->Ð?Ñ?Ô?€ð3ð 3ð 3ðl(ð (ð (ð%ð %ð %ð %ð %ñ %ô %ð %ð ˆzÒÐð €Dð ð ð ˆØˆˆk˜A‰oÑÔÐØˆˆd�iŠi˜	˜	 $¨Ñ*Ô*Ñ+Ô+Ñ,Ô,Ð,Øˆ‰Œˆˆð Ððð r   